From 5ba0bed73af4f09c50cd7ed7201455bf17d4b6fd Mon Sep 17 00:00:00 2001 From: Anna Carroll Date: Wed, 1 Sep 2021 22:04:25 +0200 Subject: [PATCH] Final Contract Cleaning + Renaming (#698) * Rename Pending to Proven; make case for enums consistent * Replica docs * GovernanceRouter docs * Fix test error message * XAppConnectionManager docs * Remove is_owner from rust * Remove isOwner test * Rename enqueue => dispatch * Update tests to remove enqueue * Rename enqueue in rust * Fix: disapatch * Rename sequences => nonces * Rename sequences => nonces * fix lint * Rename current => committedRoot * Rename leaf => messageHash * Rename endBlock => recoveryActiveAt * Fix test gen --- rust/Cargo.lock | 84 +- rust/agents/kathy/src/kathy.rs | 2 +- rust/agents/processor/src/processor.rs | 4 +- rust/agents/relayer/src/relayer.rs | 2 +- rust/agents/updater/src/updater.rs | 10 +- rust/agents/watcher/src/watcher.rs | 30 +- .../chains/optics-ethereum/abis/Home.abi.json | 112 +- .../optics-ethereum/abis/Replica.abi.json | 30 +- .../abis/XAppConnectionManager.abi.json | 19 - rust/chains/optics-ethereum/src/home.rs | 24 +- rust/chains/optics-ethereum/src/replica.rs | 4 +- rust/chains/optics-ethereum/src/xapp.rs | 9 - rust/optics-base/src/home.rs | 38 +- rust/optics-base/src/replica.rs | 8 +- rust/optics-base/src/xapp.rs | 14 - rust/optics-core/bin/utils_test_output.rs | 2 +- rust/optics-core/src/models/home.rs | 16 +- rust/optics-core/src/test_output.rs | 20 +- rust/optics-core/src/traits/home.rs | 32 +- rust/optics-core/src/traits/mod.rs | 6 +- rust/optics-core/src/traits/xapp.rs | 3 - rust/optics-core/src/types/messages.rs | 12 +- rust/optics-core/src/utils.rs | 10 +- rust/optics-test/src/mocks/home.rs | 28 +- rust/optics-test/src/mocks/replica.rs | 6 +- rust/optics-test/src/mocks/xapp.rs | 6 - solidity/optics-core/contracts/Common.sol | 31 +- solidity/optics-core/contracts/Home.sol | 84 +- solidity/optics-core/contracts/Replica.sol | 235 +- .../contracts/XAppConnectionManager.sol | 137 +- .../contracts/governance/GovernanceRouter.sol | 201 +- .../optics-core/contracts/test/TestHome.sol | 4 +- .../contracts/test/TestMessage.sol | 4 +- .../contracts/test/TestReplica.sol | 6 +- solidity/optics-core/libs/Message.sol | 18 +- .../contracts/bridge/BridgeRouter.sol | 6 +- .../contracts/bridge/test/MockCore.sol | 20 +- .../contracts/ping-pong/PingPongRouter.sol | 10 +- .../xapp-template/RouterTemplate.sol | 6 +- typescript/optics-deploy/src/core/index.ts | 2 +- typescript/optics-tests/lib/core.ts | 8 +- typescript/optics-tests/lib/types.ts | 4 +- typescript/optics-tests/package-lock.json | 16407 +--------------- .../test/cross-chain/governanceRouter.test.ts | 34 +- .../test/cross-chain/simpleMessage.test.ts | 38 +- .../optics-tests/test/cross-chain/utils.ts | 42 +- typescript/optics-tests/test/home.test.ts | 118 +- typescript/optics-tests/test/message.test.ts | 20 +- typescript/optics-tests/test/replica.test.ts | 92 +- .../test/xAppConnectionManager.test.ts | 7 - typescript/typechain/optics-core/Common.d.ts | 22 +- .../optics-core/GovernanceRouter.d.ts | 4 +- typescript/typechain/optics-core/Home.d.ts | 177 +- typescript/typechain/optics-core/Replica.d.ts | 46 +- .../typechain/optics-core/TestCommon.d.ts | 22 +- .../optics-core/TestGovernanceRouter.d.ts | 4 +- .../typechain/optics-core/TestHome.d.ts | 203 +- .../typechain/optics-core/TestMessage.d.ts | 35 +- .../typechain/optics-core/TestReplica.d.ts | 62 +- .../TestXAppConnectionManager.d.ts | 16 - .../optics-core/XAppConnectionManager.d.ts | 16 - .../optics-core/factories/Common__factory.ts | 2 +- .../factories/GovernanceRouter__factory.ts | 4 +- .../optics-core/factories/Home__factory.ts | 114 +- .../optics-core/factories/Replica__factory.ts | 32 +- .../factories/TestCommon__factory.ts | 4 +- .../TestGovernanceRouter__factory.ts | 4 +- .../factories/TestHome__factory.ts | 118 +- .../factories/TestMessage__factory.ts | 28 +- .../factories/TestReplica__factory.ts | 34 +- .../TestXAppConnectionManager__factory.ts | 21 +- .../factories/UpdaterManager__factory.ts | 2 +- .../XAppConnectionManager__factory.ts | 21 +- typescript/typechain/optics-xapps/Common.d.ts | 22 +- typescript/typechain/optics-xapps/Home.d.ts | 177 +- .../typechain/optics-xapps/MockCore.d.ts | 61 +- .../typechain/optics-xapps/Replica.d.ts | 46 +- .../optics-xapps/XAppConnectionManager.d.ts | 16 - .../factories/BridgeRouter__factory.ts | 2 +- .../factories/BridgeToken__factory.ts | 2 +- .../optics-xapps/factories/Common__factory.ts | 2 +- .../factories/ETHHelper__factory.ts | 2 +- .../optics-xapps/factories/Home__factory.ts | 114 +- .../factories/MockCore__factory.ts | 44 +- .../factories/MockWeth__factory.ts | 2 +- .../factories/PingPongRouter__factory.ts | 2 +- .../factories/Replica__factory.ts | 32 +- .../factories/RouterTemplate__factory.ts | 2 +- .../XAppConnectionManager__factory.ts | 21 +- vectors/destinationNonce.json | 27 + vectors/destinationSequence.json | 27 - vectors/message.json | 4 +- 92 files changed, 1849 insertions(+), 17812 deletions(-) create mode 100644 vectors/destinationNonce.json delete mode 100644 vectors/destinationSequence.json diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 7ddc3f7ce..289616839 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -890,9 +890,9 @@ version = "0.5.1" source = "git+https://github.com/gakonst/ethers-rs?branch=master#824bedbd428ef6671596d45216b2cfc19834665b" dependencies = [ "ethers-contract", - "ethers-core 0.5.1", + "ethers-core", "ethers-middleware", - "ethers-providers 0.5.1 (git+https://github.com/gakonst/ethers-rs?branch=master)", + "ethers-providers", "ethers-signers", ] @@ -903,8 +903,8 @@ source = "git+https://github.com/gakonst/ethers-rs?branch=master#824bedbd428ef66 dependencies = [ "ethers-contract-abigen", "ethers-contract-derive", - "ethers-core 0.5.1", - "ethers-providers 0.5.1 (git+https://github.com/gakonst/ethers-rs?branch=master)", + "ethers-core", + "ethers-providers", "futures-util", "hex", "once_cell", @@ -923,7 +923,7 @@ dependencies = [ "anyhow", "cargo_metadata", "cfg-if", - "ethers-core 0.5.1", + "ethers-core", "getrandom", "hex", "once_cell", @@ -942,7 +942,7 @@ version = "0.5.1" source = "git+https://github.com/gakonst/ethers-rs?branch=master#824bedbd428ef6671596d45216b2cfc19834665b" dependencies = [ "ethers-contract-abigen", - "ethers-core 0.5.1", + "ethers-core", "hex", "proc-macro2", "quote", @@ -975,30 +975,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "ethers-core" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777686df15e28e0e49d2e7d1a4e5db111eac404a1c67cccf3009af9d6163dc39" -dependencies = [ - "arrayvec 0.7.1", - "bytes", - "ecdsa", - "elliptic-curve", - "ethabi", - "generic-array 0.14.4", - "glob", - "hex", - "k256", - "rand", - "rlp", - "rlp-derive", - "serde 1.0.130", - "serde_json", - "thiserror", - "tiny-keccak", -] - [[package]] name = "ethers-middleware" version = "0.5.1" @@ -1006,8 +982,8 @@ source = "git+https://github.com/gakonst/ethers-rs?branch=master#824bedbd428ef66 dependencies = [ "async-trait", "ethers-contract", - "ethers-core 0.5.1", - "ethers-providers 0.5.1 (git+https://github.com/gakonst/ethers-rs?branch=master)", + "ethers-core", + "ethers-providers", "ethers-signers", "futures-util", "instant", @@ -1022,40 +998,6 @@ dependencies = [ "url", ] -[[package]] -name = "ethers-providers" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edfb15611b9514e7a8f5904ad3be15004efc6f4ecb40703b985d8fa1d5cc672" -dependencies = [ - "async-trait", - "auto_impl", - "bytes", - "ethers-core 0.5.2", - "futures-channel", - "futures-core", - "futures-timer", - "futures-util", - "hex", - "parking_lot", - "pin-project", - "reqwest", - "serde 1.0.130", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite", - "tokio-util", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-timer", - "web-sys", - "ws_stream_wasm", -] - [[package]] name = "ethers-providers" version = "0.5.1" @@ -1064,7 +1006,7 @@ dependencies = [ "async-trait", "auto_impl", "bytes", - "ethers-core 0.5.1", + "ethers-core", "futures-channel", "futures-core", "futures-timer", @@ -1099,7 +1041,7 @@ dependencies = [ "coins-bip39", "elliptic-curve", "eth-keystore", - "ethers-core 0.5.1", + "ethers-core", "futures-executor", "futures-util", "hex", @@ -2199,7 +2141,7 @@ dependencies = [ "async-trait", "color-eyre", "ethers", - "ethers-providers 0.5.1 (git+https://github.com/gakonst/ethers-rs?branch=master)", + "ethers-providers", "ethers-signers", "hex", "lazy_static", @@ -2220,17 +2162,13 @@ dependencies = [ "color-eyre", "ethers", "ethers-contract", - "ethers-providers 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "ethers-signers", "hex", "optics-core", - "reqwest", "serde 1.0.130", "serde_json", - "thiserror", "tokio", "tracing", - "url", ] [[package]] diff --git a/rust/agents/kathy/src/kathy.rs b/rust/agents/kathy/src/kathy.rs index 731ddf58e..7492b0604 100644 --- a/rust/agents/kathy/src/kathy.rs +++ b/rust/agents/kathy/src/kathy.rs @@ -82,7 +82,7 @@ impl OpticsAgent for Kathy { destination = message.destination, recipient = message.recipient ); - home.enqueue(&message).await?; + home.dispatch(&message).await?; } _ => { info!("Reached the end of the static message queue. Shutting down."); diff --git a/rust/agents/processor/src/processor.rs b/rust/agents/processor/src/processor.rs index 24ce4cffc..cffaebe1e 100644 --- a/rust/agents/processor/src/processor.rs +++ b/rust/agents/processor/src/processor.rs @@ -107,7 +107,7 @@ impl Replica { let seq_span = tracing::trace_span!( "ReplicaProcessor", name = self.replica.name(), - sequence = next_to_inspect, + nonce = next_to_inspect, replica_domain = self.replica.local_domain(), home_domain = self.home.local_domain(), ); @@ -148,7 +148,7 @@ impl Replica { async fn try_msg_by_domain_and_seq(&self, domain: u32, current_seq: u32) -> Result { use optics_core::traits::Replica; - let message = match self.home.message_by_sequence(domain, current_seq).await { + let message = match self.home.message_by_nonce(domain, current_seq).await { Ok(Some(m)) => m, Ok(None) => { info!("Message not yet found"); diff --git a/rust/agents/relayer/src/relayer.rs b/rust/agents/relayer/src/relayer.rs index 44f6e64ff..de4c1a2ae 100644 --- a/rust/agents/relayer/src/relayer.rs +++ b/rust/agents/relayer/src/relayer.rs @@ -48,7 +48,7 @@ impl UpdatePoller { // If the replica has a queue of pending updates, we use the last queue // root instead let (old_root_res, queue_end_res) = - join!(self.replica.current_root(), self.replica.queue_end()); + join!(self.replica.committed_root(), self.replica.queue_end()); let old_root = { if let Some(end) = queue_end_res? { diff --git a/rust/agents/updater/src/updater.rs b/rust/agents/updater/src/updater.rs index b93a4dfb8..2f786d7e4 100644 --- a/rust/agents/updater/src/updater.rs +++ b/rust/agents/updater/src/updater.rs @@ -86,23 +86,23 @@ impl UpdateHandler { async fn acceptable(&self, update: &Update) -> Result { // Poll chain API to see if queue still contains new root // and old root still equals home's current root - let (in_queue, current_root) = tokio::join!( + let (in_queue, committed_root) = tokio::join!( self.home.queue_contains(update.new_root), - self.home.current_root() + self.home.committed_root() ); if in_queue.is_err() { info!("Update no longer in queue"); } - if current_root.is_err() { + if committed_root.is_err() { error!("Connection gone"); } let in_queue = in_queue?; - let current_root = current_root?; + let committed_root = committed_root?; let old_root = update.previous_root; - Ok(in_queue && current_root == old_root) + Ok(in_queue && committed_root == old_root) } #[tracing::instrument(err, skip(self), fields(self = %self))] diff --git a/rust/agents/watcher/src/watcher.rs b/rust/agents/watcher/src/watcher.rs index a48b4dc0d..1e5ad0d51 100644 --- a/rust/agents/watcher/src/watcher.rs +++ b/rust/agents/watcher/src/watcher.rs @@ -42,7 +42,7 @@ where C: Common + ?Sized + 'static, { interval: u64, - current_root: H256, + committed_root: H256, tx: mpsc::Sender, contract: Arc, } @@ -59,7 +59,7 @@ where ) -> Self { Self { interval, - current_root: from, + committed_root: from, tx, contract, } @@ -68,7 +68,7 @@ where async fn poll_and_send_update(&mut self) -> Result<()> { let update_opt = self .contract - .signed_update_by_old_root(self.current_root) + .signed_update_by_old_root(self.committed_root) .await?; if update_opt.is_none() { @@ -76,7 +76,7 @@ where } let new_update = update_opt.unwrap(); - self.current_root = new_update.update.new_root; + self.committed_root = new_update.update.new_root; self.tx.send(new_update).await?; Ok(()) @@ -99,7 +99,7 @@ where C: Common + ?Sized + 'static, { interval: u64, - current_root: H256, + committed_root: H256, tx: mpsc::Sender, contract: Arc, } @@ -115,7 +115,7 @@ where contract: Arc, ) -> Self { Self { - current_root: from, + committed_root: from, tx, contract, interval, @@ -125,7 +125,7 @@ where async fn update_history(&mut self) -> Result<()> { let previous_update = self .contract - .signed_update_by_new_root(self.current_root) + .signed_update_by_new_root(self.committed_root) .await?; if previous_update.is_none() { @@ -137,9 +137,9 @@ where let previous_update = previous_update.unwrap(); // set up for next loop iteration - self.current_root = previous_update.update.previous_root; + self.committed_root = previous_update.update.previous_root; self.tx.send(previous_update).await?; - if self.current_root.is_zero() { + if self.committed_root.is_zero() { // Task finished return Err(Report::new(WatcherError::SyncingFinished)); } @@ -216,7 +216,7 @@ impl UpdateHandler { let update = update.unwrap(); let old_root = update.update.previous_root; - if old_root == self.home.current_root().await? { + if old_root == self.home.committed_root().await? { // It is okay if tx reverts let _ = self.home.update(&update).await; } @@ -372,7 +372,7 @@ impl OpticsAgent for Watcher { let replica = self .replica_by_name(name) .ok_or_else(|| eyre!("No replica named {}", name))?; - let from = replica.current_root().await?; + let from = replica.committed_root().await?; self.watch_tasks.write().await.insert( (*name).to_owned(), @@ -389,7 +389,7 @@ impl OpticsAgent for Watcher { } let home = self.home(); - let from = home.current_root().await?; + let from = home.committed_root().await?; let home_watcher = ContractWatcher::new(self.interval_seconds, from, tx.clone(), home.clone()) @@ -486,7 +486,7 @@ mod test { .await .expect("Should have received Ok(())"); - assert_eq!(contract_watcher.current_root, second_root); + assert_eq!(contract_watcher.committed_root, second_root); assert_eq!(rx.recv().await.unwrap(), signed_update); } @@ -556,7 +556,7 @@ mod test { .await .expect("Should have received Ok(())"); - assert_eq!(history_sync.current_root, first_root); + assert_eq!(history_sync.committed_root, first_root); assert_eq!(rx.recv().await.unwrap(), second_signed_update); // Second update_history call returns zero -> first update @@ -566,7 +566,7 @@ mod test { .await .expect_err("Should have received WatcherError::SyncingFinished"); - assert_eq!(history_sync.current_root, zero_root); + assert_eq!(history_sync.committed_root, zero_root); assert_eq!(rx.recv().await.unwrap(), first_signed_update) } diff --git a/rust/chains/optics-ethereum/abis/Home.abi.json b/rust/chains/optics-ethereum/abis/Home.abi.json index 20355f9cf..181acef82 100644 --- a/rust/chains/optics-ethereum/abis/Home.abi.json +++ b/rust/chains/optics-ethereum/abis/Home.abi.json @@ -13,6 +13,12 @@ { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "messageHash", + "type": "bytes32" + }, { "indexed": true, "internalType": "uint256", @@ -22,19 +28,13 @@ { "indexed": true, "internalType": "uint64", - "name": "destinationAndSequence", + "name": "destinationAndNonce", "type": "uint64" }, - { - "indexed": true, - "internalType": "bytes32", - "name": "leaf", - "type": "bytes32" - }, { "indexed": false, "internalType": "bytes32", - "name": "current", + "name": "committedRoot", "type": "bytes32" }, { @@ -213,12 +213,12 @@ }, { "inputs": [], - "name": "count", + "name": "committedRoot", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -226,12 +226,12 @@ }, { "inputs": [], - "name": "current", + "name": "count", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -240,50 +240,50 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "_oldRoot", - "type": "bytes32" - }, - { - "internalType": "bytes32[2]", - "name": "_newRoot", - "type": "bytes32[2]" + "internalType": "uint32", + "name": "_destinationDomain", + "type": "uint32" }, { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" + "internalType": "bytes32", + "name": "_recipientAddress", + "type": "bytes32" }, { "internalType": "bytes", - "name": "_signature2", + "name": "_messageBody", "type": "bytes" } ], - "name": "doubleUpdate", + "name": "dispatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "uint32", - "name": "_destinationDomain", - "type": "uint32" - }, { "internalType": "bytes32", - "name": "_recipientAddress", + "name": "_oldRoot", "type": "bytes32" }, + { + "internalType": "bytes32[2]", + "name": "_newRoot", + "type": "bytes32[2]" + }, { "internalType": "bytes", - "name": "_messageBody", + "name": "_signature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "_signature2", "type": "bytes" } ], - "name": "enqueue", + "name": "doubleUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -356,6 +356,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -434,25 +453,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "sequences", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -498,7 +498,7 @@ "outputs": [ { "internalType": "bytes32", - "name": "_current", + "name": "_committedRoot", "type": "bytes32" }, { @@ -540,7 +540,7 @@ "inputs": [ { "internalType": "bytes32", - "name": "_currentRoot", + "name": "_committedRoot", "type": "bytes32" }, { diff --git a/rust/chains/optics-ethereum/abis/Replica.abi.json b/rust/chains/optics-ethereum/abis/Replica.abi.json index 74495dab4..97b9edcd4 100644 --- a/rust/chains/optics-ethereum/abis/Replica.abi.json +++ b/rust/chains/optics-ethereum/abis/Replica.abi.json @@ -53,7 +53,7 @@ { "indexed": true, "internalType": "uint32", - "name": "sequence", + "name": "nonce", "type": "uint32" }, { @@ -174,6 +174,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "committedRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "confirm", @@ -200,19 +213,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "current", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -268,7 +268,7 @@ }, { "internalType": "bytes32", - "name": "_current", + "name": "_committedRoot", "type": "bytes32" }, { diff --git a/rust/chains/optics-ethereum/abis/XAppConnectionManager.abi.json b/rust/chains/optics-ethereum/abis/XAppConnectionManager.abi.json index 067344918..15f59ccd3 100644 --- a/rust/chains/optics-ethereum/abis/XAppConnectionManager.abi.json +++ b/rust/chains/optics-ethereum/abis/XAppConnectionManager.abi.json @@ -118,25 +118,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { diff --git a/rust/chains/optics-ethereum/src/home.rs b/rust/chains/optics-ethereum/src/home.rs index 6743fa2d8..14808d4db 100644 --- a/rust/chains/optics-ethereum/src/home.rs +++ b/rust/chains/optics-ethereum/src/home.rs @@ -83,8 +83,8 @@ where } #[tracing::instrument(err, skip(self))] - async fn current_root(&self) -> Result { - Ok(self.contract.current().call().await?.into()) + async fn committed_root(&self) -> Result { + Ok(self.contract.committed_root().call().await?.into()) } #[tracing::instrument(err, skip(self))] @@ -184,12 +184,12 @@ where } #[tracing::instrument(err, skip(self))] - async fn raw_message_by_sequence( + async fn raw_message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError> { - let dest_and_seq = utils::destination_and_sequence(destination, sequence); + let dest_and_seq = utils::destination_and_nonce(destination, nonce); let events = self .contract @@ -201,7 +201,7 @@ where Ok(events.into_iter().next().map(|f| RawCommittedMessage { leaf_index: f.leaf_index.as_u32(), - current_root: f.current.into(), + committed_root: f.committed_root.into(), message: f.message, })) } @@ -221,7 +221,7 @@ where Ok(events.into_iter().next().map(|f| RawCommittedMessage { leaf_index: f.leaf_index.as_u32(), - current_root: f.current.into(), + committed_root: f.committed_root.into(), message: f.message, })) } @@ -238,17 +238,17 @@ where .query() .await? .first() - .map(|event| event.leaf.into())) + .map(|event| event.message_hash.into())) } #[tracing::instrument(err, skip(self))] - async fn sequences(&self, destination: u32) -> Result { - Ok(self.contract.sequences(destination).call().await?) + async fn nonces(&self, destination: u32) -> Result { + Ok(self.contract.nonces(destination).call().await?) } #[tracing::instrument(err, skip(self))] - async fn enqueue(&self, message: &Message) -> Result { - let tx = self.contract.enqueue( + async fn dispatch(&self, message: &Message) -> Result { + let tx = self.contract.dispatch( message.destination, message.recipient.to_fixed_bytes(), message.body.clone(), diff --git a/rust/chains/optics-ethereum/src/replica.rs b/rust/chains/optics-ethereum/src/replica.rs index 6faa9a8af..e92d6b17f 100644 --- a/rust/chains/optics-ethereum/src/replica.rs +++ b/rust/chains/optics-ethereum/src/replica.rs @@ -87,8 +87,8 @@ where } #[tracing::instrument(err)] - async fn current_root(&self) -> Result { - Ok(self.contract.current().call().await?.into()) + async fn committed_root(&self) -> Result { + Ok(self.contract.committed_root().call().await?.into()) } #[tracing::instrument(err)] diff --git a/rust/chains/optics-ethereum/src/xapp.rs b/rust/chains/optics-ethereum/src/xapp.rs index 07bce0348..1164567f4 100644 --- a/rust/chains/optics-ethereum/src/xapp.rs +++ b/rust/chains/optics-ethereum/src/xapp.rs @@ -53,15 +53,6 @@ where self.domain } - #[tracing::instrument(err)] - async fn is_owner(&self, address: OpticsIdentifier) -> Result { - Ok(self - .contract - .is_owner(address.as_ethereum_address()) - .call() - .await?) - } - #[tracing::instrument(err)] async fn is_replica(&self, address: OpticsIdentifier) -> Result { Ok(self diff --git a/rust/optics-base/src/home.rs b/rust/optics-base/src/home.rs index b2c4b1a6c..9add081e8 100644 --- a/rust/optics-base/src/home.rs +++ b/rust/optics-base/src/home.rs @@ -75,19 +75,15 @@ impl Home for Homes { } #[instrument(level = "trace", err)] - async fn raw_message_by_sequence( + async fn raw_message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError> { match self { - Homes::Ethereum(home) => home.raw_message_by_sequence(destination, sequence).await, - Homes::Mock(mock_home) => { - mock_home - .raw_message_by_sequence(destination, sequence) - .await - } - Homes::Other(home) => home.raw_message_by_sequence(destination, sequence).await, + Homes::Ethereum(home) => home.raw_message_by_nonce(destination, nonce).await, + Homes::Mock(mock_home) => mock_home.raw_message_by_nonce(destination, nonce).await, + Homes::Other(home) => home.raw_message_by_nonce(destination, nonce).await, } } @@ -116,20 +112,20 @@ impl Home for Homes { } #[instrument(level = "trace", err)] - async fn sequences(&self, destination: u32) -> Result { + async fn nonces(&self, destination: u32) -> Result { match self { - Homes::Ethereum(home) => home.sequences(destination).await, - Homes::Mock(mock_home) => mock_home.sequences(destination).await, - Homes::Other(home) => home.sequences(destination).await, + Homes::Ethereum(home) => home.nonces(destination).await, + Homes::Mock(mock_home) => mock_home.nonces(destination).await, + Homes::Other(home) => home.nonces(destination).await, } } #[instrument(level = "trace", err)] - async fn enqueue(&self, message: &Message) -> Result { + async fn dispatch(&self, message: &Message) -> Result { match self { - Homes::Ethereum(home) => home.enqueue(message).await, - Homes::Mock(mock_home) => mock_home.enqueue(message).await, - Homes::Other(home) => home.enqueue(message).await, + Homes::Ethereum(home) => home.dispatch(message).await, + Homes::Mock(mock_home) => mock_home.dispatch(message).await, + Homes::Other(home) => home.dispatch(message).await, } } @@ -196,11 +192,11 @@ impl Common for Homes { } } - async fn current_root(&self) -> Result { + async fn committed_root(&self) -> Result { match self { - Homes::Ethereum(home) => home.current_root().await, - Homes::Mock(mock_home) => mock_home.current_root().await, - Homes::Other(home) => home.current_root().await, + Homes::Ethereum(home) => home.committed_root().await, + Homes::Mock(mock_home) => mock_home.committed_root().await, + Homes::Other(home) => home.committed_root().await, } } diff --git a/rust/optics-base/src/replica.rs b/rust/optics-base/src/replica.rs index 7d0723fd0..dd1aa911b 100644 --- a/rust/optics-base/src/replica.rs +++ b/rust/optics-base/src/replica.rs @@ -186,11 +186,11 @@ impl Common for Replicas { } } - async fn current_root(&self) -> Result { + async fn committed_root(&self) -> Result { match self { - Replicas::Ethereum(replica) => replica.current_root().await, - Replicas::Mock(mock_replica) => mock_replica.current_root().await, - Replicas::Other(replica) => replica.current_root().await, + Replicas::Ethereum(replica) => replica.committed_root().await, + Replicas::Mock(mock_replica) => mock_replica.committed_root().await, + Replicas::Other(replica) => replica.committed_root().await, } } diff --git a/rust/optics-base/src/xapp.rs b/rust/optics-base/src/xapp.rs index 4f8016f9e..44e3d97de 100644 --- a/rust/optics-base/src/xapp.rs +++ b/rust/optics-base/src/xapp.rs @@ -62,20 +62,6 @@ impl ConnectionManager for ConnectionManagers { } } - async fn is_owner(&self, address: OpticsIdentifier) -> Result { - match self { - ConnectionManagers::Ethereum(connection_manager) => { - connection_manager.is_owner(address).await - } - ConnectionManagers::Mock(connection_manager) => { - connection_manager.is_owner(address).await - } - ConnectionManagers::Other(connection_manager) => { - connection_manager.is_owner(address).await - } - } - } - async fn is_replica(&self, address: OpticsIdentifier) -> Result { match self { ConnectionManagers::Ethereum(connection_manager) => { diff --git a/rust/optics-core/bin/utils_test_output.rs b/rust/optics-core/bin/utils_test_output.rs index 87583fe3c..7b689b1db 100644 --- a/rust/optics-core/bin/utils_test_output.rs +++ b/rust/optics-core/bin/utils_test_output.rs @@ -5,6 +5,6 @@ fn main() { #[cfg(feature = "output")] { output_home_domain_hashes(); - output_destination_and_sequences(); + output_destination_and_nonces(); } } diff --git a/rust/optics-core/src/models/home.rs b/rust/optics-core/src/models/home.rs index bf467887e..7fca1ffe3 100644 --- a/rust/optics-core/src/models/home.rs +++ b/rust/optics-core/src/models/home.rs @@ -65,7 +65,7 @@ fn format_message( pub struct Home { local: u32, updater: Address, - current_root: H256, + committed_root: H256, state: S, } @@ -95,7 +95,7 @@ impl From> for Home { Self { local: h.local, updater: h.updater, - current_root: h.current_root, + committed_root: h.committed_root, state: Failed { accumulator: h.state.accumulator, queue: h.state.queue, @@ -115,13 +115,13 @@ impl Home { Self { local, updater, - current_root: Default::default(), + committed_root: Default::default(), state: Waiting::default(), } } - /// Enqueue a message - pub fn enqueue(&mut self, sender: H256, destination: u32, recipient: H256, body: &[u8]) { + /// Dispatch a message + pub fn dispatch(&mut self, sender: H256, destination: u32, recipient: H256, body: &[u8]) { let message = format_message(self.local, sender, destination, recipient, body); let message_hash = hash(&message); self.state.accumulator.ingest(message_hash); @@ -129,10 +129,10 @@ impl Home { } fn _update(&mut self, update: &Update) -> Result<(), OpticsError> { - if update.previous_root != self.current_root { + if update.previous_root != self.committed_root { return Err(OpticsError::WrongCurrentRoot { actual: update.previous_root, - expected: self.current_root, + expected: self.committed_root, }); } @@ -152,7 +152,7 @@ impl Home { pub fn produce_update(&self) -> Update { Update { home_domain: self.local, - previous_root: self.current_root, + previous_root: self.committed_root, new_root: self.state.accumulator.root(), } } diff --git a/rust/optics-core/src/test_output.rs b/rust/optics-core/src/test_output.rs index 7b49a1470..9a2b2f26a 100644 --- a/rust/optics-core/src/test_output.rs +++ b/rust/optics-core/src/test_output.rs @@ -4,7 +4,7 @@ use crate::{ TREE_DEPTH, }, test_utils::find_vector, - utils::{destination_and_sequence, home_domain_hash}, + utils::{destination_and_nonce, home_domain_hash}, FailureNotification, OpticsMessage, Update, }; use ethers::{ @@ -30,7 +30,7 @@ pub mod output_functions { sender: H256::from( H160::from_str("0x1111111111111111111111111111111111111111").unwrap(), ), - sequence: 1, + nonce: 1, destination: 2000, recipient: H256::from( H160::from_str("0x2222222222222222222222222222222222222222").unwrap(), @@ -43,9 +43,9 @@ pub mod output_functions { "sender": optics_message.sender, "destination": optics_message.destination, "recipient": optics_message.recipient, - "sequence": optics_message.sequence, + "nonce": optics_message.nonce, "body": optics_message.body, - "leaf": optics_message.to_leaf(), + "messageHash": optics_message.to_leaf(), }); let json = json!([message_json]).to_string(); @@ -121,15 +121,15 @@ pub mod output_functions { .expect("Failed to write to file"); } - /// Outputs combined destination and sequence test cases in /vector/ - /// destinationSequence.json - pub fn output_destination_and_sequences() { + /// Outputs combined destination and nonce test cases in /vector/ + /// destinationNonce.json + pub fn output_destination_and_nonces() { let test_cases: Vec = (1..=5) .map(|i| { json!({ "destination": i, - "sequence": i + 1, - "expectedDestinationAndSequence": destination_and_sequence(i, i + 1) + "nonce": i + 1, + "expectedDestinationAndNonce": destination_and_nonce(i, i + 1) }) }) .collect(); @@ -140,7 +140,7 @@ pub mod output_functions { .write(true) .create(true) .truncate(true) - .open(find_vector("destinationSequence.json")) + .open(find_vector("destinationNonce.json")) .expect("Failed to open/create file"); file.write_all(json.as_bytes()) diff --git a/rust/optics-core/src/traits/home.rs b/rust/optics-core/src/traits/home.rs index 8517511a9..5a2ff8502 100644 --- a/rust/optics-core/src/traits/home.rs +++ b/rust/optics-core/src/traits/home.rs @@ -15,7 +15,7 @@ pub struct RawCommittedMessage { /// The index at which the message is committed pub leaf_index: u32, /// The home's current root when the message was committed. - pub current_root: H256, + pub committed_root: H256, /// The fully detailed message that was committed pub message: Vec, } @@ -27,7 +27,7 @@ pub struct CommittedMessage { /// The index at which the message is committed pub leaf_index: u32, /// The home's current root when the message was committed. - pub current_root: H256, + pub committed_root: H256, /// The fully detailed message that was committed pub message: OpticsMessage, } @@ -51,7 +51,7 @@ impl TryFrom for CommittedMessage { fn try_from(raw: RawCommittedMessage) -> Result { Ok(Self { leaf_index: raw.leaf_index, - current_root: raw.current_root, + committed_root: raw.committed_root, message: OpticsMessage::read_from(&mut &raw.message[..])?, }) } @@ -69,24 +69,24 @@ pub trait Home: Common + Send + Sync + std::fmt::Debug { home_domain_hash(self.local_domain()) } - /// Fetch the message to destination at the sequence number (or error). + /// Fetch the message to destination at the nonce (or error). /// This should fetch events from the chain API. /// /// Used by processors to get messages in order - async fn raw_message_by_sequence( + async fn raw_message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError>; - /// Fetch the message to destination at the sequence number (or error). + /// Fetch the message to destination at the nonce (or error). /// This should fetch events from the chain API - async fn message_by_sequence( + async fn message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError> { - self.raw_message_by_sequence(destination, sequence) + self.raw_message_by_nonce(destination, nonce) .await? .map(CommittedMessage::try_from) .transpose() @@ -116,19 +116,19 @@ pub trait Home: Common + Send + Sync + std::fmt::Debug { /// Fetch the tree_index-th leaf inserted into the merkle tree. /// Returns `Ok(None)` if no leaf exists for given `tree_size` (`Ok(None)` /// serves as the return value for an index error). If tree_index == 0, - /// this will return the first enqueued leaf. This is because the Home + /// this will return the first inserted leaf. This is because the Home /// emits the index at which the leaf was inserted in (`tree.count() - 1`), - /// thus the first enqueued leaf has an index of 0. + /// thus the first inserted leaf has an index of 0. async fn leaf_by_tree_index( &self, tree_index: usize, ) -> Result, ChainCommunicationError>; - /// Fetch the sequence - async fn sequences(&self, destination: u32) -> Result; + /// Fetch the nonce + async fn nonces(&self, destination: u32) -> Result; - /// Queue a message. - async fn enqueue(&self, message: &Message) -> Result; + /// Dispatch a message. + async fn dispatch(&self, message: &Message) -> Result; /// Check if queue contains root. async fn queue_contains(&self, root: H256) -> Result; diff --git a/rust/optics-core/src/traits/mod.rs b/rust/optics-core/src/traits/mod.rs index c6b18b563..6bb645b84 100644 --- a/rust/optics-core/src/traits/mod.rs +++ b/rust/optics-core/src/traits/mod.rs @@ -103,7 +103,7 @@ pub trait Common: Sync + Send + std::fmt::Debug { async fn state(&self) -> Result; /// Fetch the current root. - async fn current_root(&self) -> Result; + async fn committed_root(&self) -> Result; /// Fetch the first signed update building off of `old_root`. If `old_root` /// was never accepted or has never been updated, this will return `Ok(None )`. @@ -123,8 +123,8 @@ pub trait Common: Sync + Send + std::fmt::Debug { /// Fetch most recent signed_update. async fn poll_signed_update(&self) -> Result, ChainCommunicationError> { - let current_root = self.current_root().await?; - self.signed_update_by_new_root(current_root).await + let committed_root = self.committed_root().await?; + self.signed_update_by_new_root(committed_root).await } /// Submit a signed update for inclusion diff --git a/rust/optics-core/src/traits/xapp.rs b/rust/optics-core/src/traits/xapp.rs index 0d90ff941..434807473 100644 --- a/rust/optics-core/src/traits/xapp.rs +++ b/rust/optics-core/src/traits/xapp.rs @@ -10,9 +10,6 @@ pub trait ConnectionManager: Send + Sync + std::fmt::Debug { /// Return the contract's local domain ID fn local_domain(&self) -> u32; - /// Return true if provided address is the contract's owner - async fn is_owner(&self, address: OpticsIdentifier) -> Result; - /// Returns true if provided address is enrolled replica async fn is_replica(&self, address: OpticsIdentifier) -> Result; diff --git a/rust/optics-core/src/types/messages.rs b/rust/optics-core/src/types/messages.rs index 089ad82f9..95f7c42ab 100644 --- a/rust/optics-core/src/types/messages.rs +++ b/rust/optics-core/src/types/messages.rs @@ -12,7 +12,7 @@ pub struct OpticsMessage { /// 32 Address in home convention pub sender: H256, /// 4 Count of all previous messages to destination - pub sequence: u32, + pub nonce: u32, /// 4 SLIP-44 ID pub destination: u32, /// 32 Address in destination convention @@ -39,7 +39,7 @@ impl Encode for OpticsMessage { { writer.write_all(&self.origin.to_be_bytes())?; writer.write_all(self.sender.as_ref())?; - writer.write_all(&self.sequence.to_be_bytes())?; + writer.write_all(&self.nonce.to_be_bytes())?; writer.write_all(&self.destination.to_be_bytes())?; writer.write_all(self.recipient.as_ref())?; writer.write_all(&self.body)?; @@ -58,8 +58,8 @@ impl Decode for OpticsMessage { let mut sender = H256::zero(); reader.read_exact(sender.as_mut())?; - let mut sequence = [0u8; 4]; - reader.read_exact(&mut sequence)?; + let mut nonce = [0u8; 4]; + reader.read_exact(&mut nonce)?; let mut destination = [0u8; 4]; reader.read_exact(&mut destination)?; @@ -75,7 +75,7 @@ impl Decode for OpticsMessage { sender, destination: u32::from_be_bytes(destination), recipient, - sequence: u32::from_be_bytes(sequence), + nonce: u32::from_be_bytes(nonce), body, }) } @@ -95,7 +95,7 @@ impl std::fmt::Display for OpticsMessage { write!( f, "OpticsMessage {}->{}:{}", - self.origin, self.destination, self.sequence, + self.origin, self.destination, self.nonce, ) } } diff --git a/rust/optics-core/src/utils.rs b/rust/optics-core/src/utils.rs index 2fb5f7c35..eda5c992c 100644 --- a/rust/optics-core/src/utils.rs +++ b/rust/optics-core/src/utils.rs @@ -28,12 +28,12 @@ pub fn home_domain_hash(home_domain: u32) -> H256 { ) } -/// Destination and destination-specific sequence combined in single field ( -/// (destination << 32) & sequence) -pub fn destination_and_sequence(destination: u32, sequence: u32) -> u64 { +/// Destination and destination-specific nonce combined in single field ( +/// (destination << 32) & nonce) +pub fn destination_and_nonce(destination: u32, nonce: u32) -> u64 { assert!(destination < u32::MAX); - assert!(sequence < u32::MAX); - ((destination as u64) << 32) | sequence as u64 + assert!(nonce < u32::MAX); + ((destination as u64) << 32) | nonce as u64 } /// A Hex String of length `N` representing bytes of length `N / 2` diff --git a/rust/optics-test/src/mocks/home.rs b/rust/optics-test/src/mocks/home.rs index e9e6bd273..7c3e1feec 100644 --- a/rust/optics-test/src/mocks/home.rs +++ b/rust/optics-test/src/mocks/home.rs @@ -19,10 +19,10 @@ mock! { pub fn _home_domain_hash(&self) -> H256 {} - pub fn _raw_message_by_sequence( + pub fn _raw_message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError> {} pub fn _raw_message_by_leaf( @@ -36,9 +36,9 @@ mock! { tree_index: usize, ) -> Result, ChainCommunicationError> {} - pub fn _sequences(&self, destination: u32) -> Result {} + pub fn _nonces(&self, destination: u32) -> Result {} - pub fn _enqueue(&self, message: &Message) -> Result {} + pub fn _dispatch(&self, message: &Message) -> Result {} pub fn _queue_contains(&self, root: H256) -> Result {} @@ -58,7 +58,7 @@ mock! { pub fn _state(&self) -> Result {} - pub fn _current_root(&self) -> Result {} + pub fn _committed_root(&self) -> Result {} pub fn _signed_update_by_old_root( &self, @@ -95,12 +95,12 @@ impl Home for MockHomeContract { self._home_domain_hash() } - async fn raw_message_by_sequence( + async fn raw_message_by_nonce( &self, destination: u32, - sequence: u32, + nonce: u32, ) -> Result, ChainCommunicationError> { - self._raw_message_by_sequence(destination, sequence) + self._raw_message_by_nonce(destination, nonce) } async fn raw_message_by_leaf( @@ -117,12 +117,12 @@ impl Home for MockHomeContract { self._leaf_by_tree_index(tree_index) } - async fn sequences(&self, destination: u32) -> Result { - self._sequences(destination) + async fn nonces(&self, destination: u32) -> Result { + self._nonces(destination) } - async fn enqueue(&self, message: &Message) -> Result { - self._enqueue(message) + async fn dispatch(&self, message: &Message) -> Result { + self._dispatch(message) } async fn queue_contains(&self, root: H256) -> Result { @@ -159,8 +159,8 @@ impl Common for MockHomeContract { self._state() } - async fn current_root(&self) -> Result { - self._current_root() + async fn committed_root(&self) -> Result { + self._committed_root() } async fn signed_update_by_old_root( diff --git a/rust/optics-test/src/mocks/replica.rs b/rust/optics-test/src/mocks/replica.rs index dbf1c58a2..a673ecbeb 100644 --- a/rust/optics-test/src/mocks/replica.rs +++ b/rust/optics-test/src/mocks/replica.rs @@ -45,7 +45,7 @@ mock! { pub fn _state(&self) -> Result {} - pub fn _current_root(&self) -> Result {} + pub fn _committed_root(&self) -> Result {} pub fn _signed_update_by_old_root( &self, @@ -148,8 +148,8 @@ impl Common for MockReplicaContract { self._state() } - async fn current_root(&self) -> Result { - self._current_root() + async fn committed_root(&self) -> Result { + self._committed_root() } async fn signed_update_by_old_root( diff --git a/rust/optics-test/src/mocks/xapp.rs b/rust/optics-test/src/mocks/xapp.rs index 48e7f123e..d365c22eb 100644 --- a/rust/optics-test/src/mocks/xapp.rs +++ b/rust/optics-test/src/mocks/xapp.rs @@ -12,8 +12,6 @@ mock! { pub ConnectionManagerContract { pub fn _local_domain(&self) -> u32 {} - pub fn _is_owner(&self, address: OpticsIdentifier) -> Result {} - pub fn _is_replica(&self, address: OpticsIdentifier) -> Result {} pub fn _watcher_permission( @@ -61,10 +59,6 @@ impl ConnectionManager for MockConnectionManagerContract { self._local_domain() } - async fn is_owner(&self, address: OpticsIdentifier) -> Result { - self._is_owner(address) - } - async fn is_replica(&self, address: OpticsIdentifier) -> Result { self._is_replica(address) } diff --git a/solidity/optics-core/contracts/Common.sol b/solidity/optics-core/contracts/Common.sol index 2ff749188..09ab59837 100644 --- a/solidity/optics-core/contracts/Common.sol +++ b/solidity/optics-core/contracts/Common.sol @@ -16,15 +16,15 @@ abstract contract Common is QueueManager { // ============ Enums ============ // States: - // (0) UNINITIALIZED before initialize function is called + // 0 - UnInitialized - before initialize function is called // note: the contract is initialized at deploy time, so it should never be in this state - // (1) ACTIVE as long as the contract has not become fraudulent - // (2) FAILED after a valid fraud proof has been submitted; + // 1 - Active - as long as the contract has not become fraudulent + // 2 - Failed - after a valid fraud proof has been submitted; // contract will no longer accept updates or new messages enum States { - UNINITIALIZED, - ACTIVE, - FAILED + UnInitialized, + Active, + Failed } // ============ Immutable Variables ============ @@ -39,7 +39,7 @@ abstract contract Common is QueueManager { // Current state of contract States public state; // The latest root that has been signed by the Updater - bytes32 public current; + bytes32 public committedRoot; // ============ Upgrade Gap ============ @@ -49,8 +49,8 @@ abstract contract Common is QueueManager { // ============ Events ============ /** - * @notice Event emitted when update is made on Home or unconfirmed update - * root is enqueued on Replica + * @notice Emitted when update is made on Home + * or unconfirmed update root is submitted on Replica * @param homeDomain Domain of home contract * @param oldRoot Old merkle root * @param newRoot New merkle root @@ -84,7 +84,7 @@ abstract contract Common is QueueManager { * @notice Ensures that contract state != FAILED when the function is called */ modifier notFailed() { - require(state != States.FAILED, "failed state"); + require(state != States.Failed, "failed state"); _; } @@ -99,7 +99,7 @@ abstract contract Common is QueueManager { function __Common_initialize(address _updater) internal initializer { __QueueManager_intialize(); updater = _updater; - state = States.ACTIVE; + state = States.Active; } // ============ External Functions ============ @@ -157,13 +157,14 @@ abstract contract Common is QueueManager { * @dev Called when a valid fraud proof is submitted */ function _setFailed() internal { - state = States.FAILED; + state = States.Failed; } /** - * @notice Performs the state modifications necessary - * to move the contract into failed state - * @dev Called when a double update or fraudulent update is detected + * @notice Moves the contract into failed state + * @dev Called when fraud is proven + * (Double Update is submitted on Home or Replica, + * or Improper Update is submitted on Home) */ function _fail() internal virtual; diff --git a/solidity/optics-core/contracts/Home.sol b/solidity/optics-core/contracts/Home.sol index f1d77dd32..6e0bff159 100644 --- a/solidity/optics-core/contracts/Home.sol +++ b/solidity/optics-core/contracts/Home.sol @@ -37,8 +37,8 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { // ============ Public Storage Variables ============ - // domain => next available nonce - mapping(uint32 => uint32) public sequences; + // domain => next available nonce for the domain + mapping(uint32 => uint32) public nonces; // contract responsible for Updater bonding, slashing and rotation IUpdaterManager public updaterManager; @@ -50,19 +50,19 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { // ============ Events ============ /** - * @notice Emitted when a new message is enqueued + * @notice Emitted when a new message is dispatched via Optics * @param leafIndex Index of message's leaf in merkle tree - * @param destinationAndSequence Destination and destination-specific - * sequence combined in single field ((destination << 32) & sequence) - * @param leaf Hash of formatted message; the leaf inserted to the Merkle tree for the message - * @param current the latest notarized root submitted in the last signed Update - * @param message Raw bytes of enqueued message + * @param destinationAndNonce Destination and destination-specific + * nonce combined in single field ((destination << 32) & nonce) + * @param messageHash Hash of message; the leaf inserted to the Merkle tree for the message + * @param committedRoot the latest notarized root submitted in the last signed Update + * @param message Raw bytes of message */ event Dispatch( + bytes32 indexed messageHash, uint256 indexed leafIndex, - uint64 indexed destinationAndSequence, - bytes32 indexed leaf, - bytes32 current, + uint64 indexed destinationAndNonce, + bytes32 committedRoot, bytes message ); @@ -152,20 +152,20 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { * @param _recipientAddress Address of recipient on destination chain as bytes32 * @param _messageBody Raw bytes content of message */ - function enqueue( + function dispatch( uint32 _destinationDomain, bytes32 _recipientAddress, bytes memory _messageBody ) external notFailed { require(_messageBody.length <= MAX_MESSAGE_BODY_BYTES, "msg too long"); - // get the next sequence for the destination domain, then increment it - uint32 _sequence = sequences[_destinationDomain]; - sequences[_destinationDomain] = _sequence + 1; + // get the next nonce for the destination domain, then increment it + uint32 _nonce = nonces[_destinationDomain]; + nonces[_destinationDomain] = _nonce + 1; // format the message into packed bytes bytes memory _message = Message.formatMessage( localDomain, bytes32(uint256(uint160(msg.sender))), - _sequence, + _nonce, _destinationDomain, _recipientAddress, _messageBody @@ -178,58 +178,58 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { // Emit Dispatch event with message information // note: leafIndex is count() - 1 since new leaf has already been inserted emit Dispatch( - count() - 1, - _destinationAndSequence(_destinationDomain, _sequence), _messageHash, - current, + count() - 1, + _destinationAndNonce(_destinationDomain, _nonce), + committedRoot, _message ); } /** - * @notice Submit a signature from the Updater "notarizing" an enqueued root, - * which updates the Home contract's `current` root, + * @notice Submit a signature from the Updater "notarizing" a root, + * which updates the Home contract's `committedRoot`, * and publishes the signature which will be relayed to Replica contracts * @dev emits Update event * @dev If _newRoot is not contained in the queue, * the Update is a fraudulent Improper Update, so * the Updater is slashed & Home is set to FAILED state - * @param _currentRoot Current updated merkle root which the update is building off of + * @param _committedRoot Current updated merkle root which the update is building off of * @param _newRoot New merkle root to update the contract state to - * @param _signature Updater signature on `_currentRoot` and `_newRoot` + * @param _signature Updater signature on `_committedRoot` and `_newRoot` */ function update( - bytes32 _currentRoot, + bytes32 _committedRoot, bytes32 _newRoot, bytes memory _signature ) external notFailed { // check that the update is not fraudulent; // if fraud is detected, Updater is slashed & Home is set to FAILED state - if (improperUpdate(_currentRoot, _newRoot, _signature)) return; + if (improperUpdate(_committedRoot, _newRoot, _signature)) return; // clear all of the intermediate roots contained in this update from the queue while (true) { bytes32 _next = queue.dequeue(); if (_next == _newRoot) break; } // update the Home state with the latest signed root & emit event - current = _newRoot; - emit Update(localDomain, _currentRoot, _newRoot, _signature); + committedRoot = _newRoot; + emit Update(localDomain, _committedRoot, _newRoot, _signature); } /** * @notice Suggest an update for the Updater to sign and submit. * @dev If queue is empty, null bytes returned for both * (No update is necessary because no messages have been dispatched since the last update) - * @return _current Latest updated root - * @return _new Latest enqueued root + * @return _committedRoot Latest root signed by the Updater + * @return _new Latest enqueued Merkle root */ function suggestUpdate() external view - returns (bytes32 _current, bytes32 _new) + returns (bytes32 _committedRoot, bytes32 _new) { if (queue.length() != 0) { - _current = current; + _committedRoot = committedRoot; _new = queue.lastItem(); } } @@ -247,7 +247,7 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { * @notice Check if an Update is an Improper Update; * if so, slash the Updater and set the contract to FAILED state. * - * An Improper Update is an update building off of the Home's `current` root + * An Improper Update is an update building off of the Home's `committedRoot` * for which the `_newRoot` does not currently exist in the Home's queue. * This would mean that message(s) that were not truly * dispatched on Home were falsely included in the signed root. @@ -260,12 +260,12 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { * in order to slash the Updater with an Improper Update. * * An Improper Update submitted to the Replica is only valid - * while the `_oldRoot` is still equal to the `current` root on Home; - * if the `current` root on Home has already been updated with a valid Update, + * while the `_oldRoot` is still equal to the `committedRoot` on Home; + * if the `committedRoot` on Home has already been updated with a valid Update, * then the Updater should be slashed with a Double Update. * @dev Reverts (and doesn't slash updater) if signature is invalid or * update not current - * @param _oldRoot Old merkle tree root (should equal home's current root) + * @param _oldRoot Old merkle tree root (should equal home's committedRoot) * @param _newRoot New merkle tree root * @param _signature Updater signature on `_oldRoot` and `_newRoot` * @return TRUE if update was an Improper Update (implying Updater was slashed) @@ -279,7 +279,7 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { _isUpdaterSignature(_oldRoot, _newRoot, _signature), "!updater sig" ); - require(_oldRoot == current, "not a current update"); + require(_oldRoot == committedRoot, "not a current update"); // if the _newRoot is not currently contained in the queue, // slash the Updater and set the contract to FAILED state if (!queue.contains(_newRoot)) { @@ -330,17 +330,17 @@ contract Home is Version0, MerkleTreeManager, Common, OwnableUpgradeable { /** * @notice Internal utility function that combines - * `_destination` and `_sequence`. - * @dev Both destination and sequence should be less than 2^32 - 1 + * `_destination` and `_nonce`. + * @dev Both destination and nonce should be less than 2^32 - 1 * @param _destination Domain of destination chain - * @param _sequence Current sequence for given destination chain - * @return Returns (`_destination` << 32) & `_sequence` + * @param _nonce Current nonce for given destination chain + * @return Returns (`_destination` << 32) & `_nonce` */ - function _destinationAndSequence(uint32 _destination, uint32 _sequence) + function _destinationAndNonce(uint32 _destination, uint32 _nonce) internal pure returns (uint64) { - return (uint64(_destination) << 32) | _sequence; + return (uint64(_destination) << 32) | _nonce; } } diff --git a/solidity/optics-core/contracts/Replica.sol b/solidity/optics-core/contracts/Replica.sol index c93942c81..7275469ac 100644 --- a/solidity/optics-core/contracts/Replica.sol +++ b/solidity/optics-core/contracts/Replica.sol @@ -14,141 +14,157 @@ import {TypedMemView} from "@summa-tx/memview-sol/contracts/TypedMemView.sol"; /** * @title Replica * @author Celo Labs Inc. - * @notice Contract responsible for tracking root updates on home, - * and dispatching messages on Replica to end recipients. + * @notice Track root updates on Home, + * prove and dispatch messages to end recipients. */ contract Replica is Version0, Common { + // ============ Libraries ============ + using QueueLib for QueueLib.Queue; using MerkleLib for MerkleLib.Tree; using TypedMemView for bytes; using TypedMemView for bytes29; using Message for bytes29; - /// @notice Status of message + // ============ Enums ============ + + // Status of Message: + // 0 - None - message has not been proven or processed + // 1 - Proven - message inclusion proof has been validated + // 2 - Processed - message has been dispatched to recipient enum MessageStatus { None, - Pending, + Proven, Processed } - event ProcessSuccess(bytes32 indexed messageHash); - - event ProcessError( - bytes32 indexed messageHash, - uint32 indexed sequence, - address indexed recipient, - bytes returnData - ); + // ============ Constants ============ - /// @notice Minimum gas for message processing + // Minimum gas for message processing uint256 public constant PROCESS_GAS = 850000; - - /// @notice Reserved gas (to ensure tx completes in case message processing runs out) + // Reserved gas (to ensure tx completes in case message processing runs out) uint256 public constant RESERVE_GAS = 15000; - /// @notice Domain of home chain - uint32 public remoteDomain; + // ============ Public Storage ============ - /// @notice Number of seconds to wait before enqueued root becomes confirmable + // Domain of home chain + uint32 public remoteDomain; + // Number of seconds to wait before root becomes confirmable uint256 public optimisticSeconds; - - /// @notice Mapping of enqueued roots to allowable confirmation times + // re-entrancy guard + uint8 private entered; + // Mapping of roots to allowable confirmation times mapping(bytes32 => uint256) public confirmAt; + // Mapping of message leaves to MessageStatus + mapping(bytes32 => MessageStatus) public messages; - /// @dev re-entrancy guard - uint8 private entered; + // ============ Upgrade Gap ============ - /// @notice Mapping of message leaves to MessageStatus - mapping(bytes32 => MessageStatus) public messages; + // gap for upgrade safety + uint256[44] private __GAP; - uint256[44] private __GAP; // gap for upgrade safety + // ============ Events ============ - constructor(uint32 _localDomain) Common(_localDomain) {} // solhint-disable-line no-empty-blocks + /** + * @notice Emitted when message is processed without error + * @param messageHash Hash of message processed + */ + event ProcessSuccess(bytes32 indexed messageHash); - function acceptableRoot(bytes32 _root) public view returns (bool) { - uint256 _time = confirmAt[_root]; - if (_time == 0) { - return false; - } - return block.timestamp >= _time; - } + /** + * @notice Emitted when processing message reverts + * @param messageHash Hash of message that failed to process + * @param nonce nonce of the message, set for each domain by remote Home + * @param recipient the intended recipient of the failed message + * @param returnData the return data from the failed message + */ + event ProcessError( + bytes32 indexed messageHash, + uint32 indexed nonce, + address indexed recipient, + bytes returnData + ); + + // ============ Constructor ============ + + // solhint-disable-next-line no-empty-blocks + constructor(uint32 _localDomain) Common(_localDomain) {} + + // ============ Initializer ============ function initialize( uint32 _remoteDomain, address _updater, - bytes32 _current, + bytes32 _committedRoot, uint256 _optimisticSeconds ) public initializer { __Common_initialize(_updater); - entered = 1; remoteDomain = _remoteDomain; - current = _current; - confirmAt[_current] = 1; + committedRoot = _committedRoot; + confirmAt[_committedRoot] = 1; optimisticSeconds = _optimisticSeconds; } + // ============ External Functions ============ + /** - * @notice Called by external agent. Enqueues signed update's new root, + * @notice Called by external agent. Submits the signed update's new root, * marks root's allowable confirmation time, and emits an `Update` event. * @dev Reverts if update doesn't build off queue's last root or replica's - * current root if queue is empty. Also reverts if signature is invalid. + * committedRoot if queue is empty. Also reverts if signature is invalid. * @param _oldRoot Old merkle root * @param _newRoot New merkle root * @param _signature Updater's signature on `_oldRoot` and `_newRoot` - **/ + */ function update( bytes32 _oldRoot, bytes32 _newRoot, bytes memory _signature ) external notFailed { + // ensure that update is building off the last submitted root if (queue.length() > 0) { require(_oldRoot == queue.lastItem(), "not end of queue"); } else { - require(current == _oldRoot, "not current update"); + require(_oldRoot == committedRoot, "not current update"); } + // validate updater signature require( _isUpdaterSignature(_oldRoot, _newRoot, _signature), "!updater sig" ); - // Hook for future use _beforeUpdate(); - - // Set the new root's confirmation timer - // And add the new root to the queue of roots + // set the new root's confirmation timer confirmAt[_newRoot] = block.timestamp + optimisticSeconds; + // add the new root to the queue of roots queue.enqueue(_newRoot); - emit Update(remoteDomain, _oldRoot, _newRoot, _signature); } /** * @notice Called by external agent. Confirms as many confirmable roots in - * queue as possible, updating replica's current root to be the last + * queue as possible, updating replica's committedRoot to be the last * confirmed root. * @dev Reverts if queue started as empty (i.e. no roots to confirm) - **/ + */ function confirm() external notFailed { require(queue.length() != 0, "!pending"); - - bytes32 _pending; - // Traverse the queue by peeking each iterm to see if it ought to be // confirmed. If so, dequeue it + bytes32 _pending; uint256 _remaining = queue.length(); while (_remaining > 0 && acceptableRoot(queue.peek())) { _pending = queue.dequeue(); _remaining -= 1; } - // This condition is hit if the while loop is never executed, because // the first queue item has not hit its timer yet require(_pending != bytes32(0), "!time"); - + // Hook for future use _beforeConfirm(); - - current = _pending; + // Update committedRoot to last confirmed root + committedRoot = _pending; } /** @@ -159,7 +175,7 @@ contract Replica is Version0, Common { * @param _message Formatted message (refer to Common.sol Message library) * @param _proof Merkle proof of inclusion for message's leaf * @param _index Index of leaf in home's merkle tree - **/ + */ function proveAndProcess( bytes memory _message, bytes32[32] calldata _proof, @@ -171,11 +187,10 @@ contract Replica is Version0, Common { /** * @notice Called by external agent. Returns next pending root to be - * confirmed and its confirmation time. If queue is empty, returns null - * values. + * confirmed and its confirmation time. * @return _pending Pending (unconfirmed) root * @return _confirmAt Pending root's confirmation time - **/ + */ function nextPending() external view @@ -185,47 +200,41 @@ contract Replica is Version0, Common { _pending = queue.peek(); _confirmAt = confirmAt[_pending]; } else { - _pending = current; - _confirmAt = confirmAt[current]; + _pending = committedRoot; + _confirmAt = confirmAt[committedRoot]; } } /** * @notice Called by external agent. Returns true if there is a confirmable * root in the queue and false if otherwise. - **/ + */ function canConfirm() external view returns (bool) { return queue.length() != 0 && acceptableRoot(queue.peek()); } /** - * @notice Given formatted message, attempts to dispatch message payload to - * end recipient. - * @dev Requires recipient to have implemented `handle` method (refer to - * XAppConnectionManager.sol). Reverts if formatted message's destination domain - * doesn't match replica's own domain, if message is out of order (skips - * one or more sequence numbers), if message has not been proven (doesn't - * have MessageStatus.Pending), or if not enough gas is provided for - * dispatch transaction. - * @param _message Formatted message (refer to Common.sol Message library) - * @return _success True if dispatch transaction succeeded (false if - * otherwise) - **/ + * @notice Given formatted message, attempts to dispatch + * message payload to end recipient. + * @dev Recipient must implement a `handle` method (refer to IMessageRecipient.sol) + * Reverts if formatted message's destination domain is not the Replica's domain, + * if message has not been proven, + * or if not enough gas is provided for the dispatch transaction. + * @param _message Formatted message + * @return _success TRUE iff dispatch transaction succeeded + */ function process(bytes memory _message) public returns (bool _success) { bytes29 _m = _message.ref(0); - bytes32 _messageHash = _m.keccak(); - - uint32 _sequence = _m.sequence(); + // ensure message was meant for this domain require(_m.destination() == localDomain, "!destination"); - require(messages[_messageHash] == MessageStatus.Pending, "!pending"); - + // ensure message has been proven + bytes32 _messageHash = _m.keccak(); + require(messages[_messageHash] == MessageStatus.Proven, "!proven"); + // check re-entrancy guard require(entered == 1, "!reentrant"); entered = 0; - - // update the status and next to process + // update message status as processed messages[_messageHash] = MessageStatus.Processed; - - // NB: // A call running out of gas TYPICALLY errors the whole tx. We want to // a) ensure the call has a sufficient amount of gas to make a // meaningful state change. @@ -234,10 +243,10 @@ contract Replica is Version0, Common { // To do this, we require that we have enough gas to process // and still return. We then delegate only the minimum processing gas. require(gasleft() >= PROCESS_GAS + RESERVE_GAS, "!gas"); - // transparently return. - + // get the message recipient address _recipient = _m.recipientAddress(); - + // dispatch message to recipient + // by low-level calling "handle" function bytes memory _returnData; (_success, _returnData) = _recipient.call{gas: PROCESS_GAS}( abi.encodeWithSignature( @@ -247,21 +256,45 @@ contract Replica is Version0, Common { _m.body().clone() ) ); - + // emit process results if (_success) { emit ProcessSuccess(_messageHash); } else { - emit ProcessError(_messageHash, _sequence, _recipient, _returnData); + emit ProcessError( + _messageHash, + _m.nonce(), + _recipient, + _returnData + ); } - + // reset re-entrancy guard entered = 1; } + // ============ Public Functions ============ + + /** + * @notice Check that the root has been submitted + * and that the optimistic timeout period has expired, + * meaning the root can be processed + * @param _root the Merkle root, submitted in an update, to check + * @return TRUE iff root has been submitted & timeout has expired + */ + function acceptableRoot(bytes32 _root) public view returns (bool) { + uint256 _time = confirmAt[_root]; + if (_time == 0) { + return false; + } + return block.timestamp >= _time; + } + /** * @notice Attempts to prove the validity of message given its leaf, the * merkle proof of inclusion for the leaf, and the index of the leaf. * @dev Reverts if message's MessageStatus != None (i.e. if message was * already proven or processed) + * @dev For convenience, we allow proving against any previous root. + * This means that witnesses never need to be updated for the new root * @param _leaf Leaf of message to prove * @param _proof Merkle proof of inclusion for leaf * @param _index Index of leaf in home's merkle tree @@ -272,25 +305,31 @@ contract Replica is Version0, Common { bytes32[32] calldata _proof, uint256 _index ) public returns (bool) { + // ensure that message has not been proven or processed require(messages[_leaf] == MessageStatus.None, "!MessageStatus.None"); - bytes32 _actual = MerkleLib.branchRoot(_leaf, _proof, _index); - - // NB: - // For convenience, we allow proving against any previous root. - // This means that witnesses never need to be updated for the new root - if (acceptableRoot(_actual)) { - messages[_leaf] = MessageStatus.Pending; + // calculate the expected root based on the proof + bytes32 _calculatedRoot = MerkleLib.branchRoot(_leaf, _proof, _index); + // if the root is valid, change status to Proven + if (acceptableRoot(_calculatedRoot)) { + messages[_leaf] = MessageStatus.Proven; return true; } return false; } - /// @notice Hash of Home's domain concatenated with "OPTICS" + /** + * @notice Hash of Home domain concatenated with "OPTICS" + */ function homeDomainHash() public view override returns (bytes32) { return _homeDomainHash(remoteDomain); } - /// @notice Sets contract state to FAILED + // ============ Internal Functions ============ + + /** + * @notice Moves the contract into failed state + * @dev Called when a Double Update is submitted + */ function _fail() internal override { _setFailed(); } diff --git a/solidity/optics-core/contracts/XAppConnectionManager.sol b/solidity/optics-core/contracts/XAppConnectionManager.sol index d4ed1cf57..465b545a3 100644 --- a/solidity/optics-core/contracts/XAppConnectionManager.sol +++ b/solidity/optics-core/contracts/XAppConnectionManager.sol @@ -9,46 +9,92 @@ import {TypeCasts} from "../libs/TypeCasts.sol"; import {ECDSA} from "@openzeppelin/contracts/cryptography/ECDSA.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +/** + * @title XAppConnectionManager + * @author Celo Labs Inc. + * @notice Manages a registry of local Replica contracts + * for remote Home domains. Accepts Watcher signatures + * to un-enroll Replicas attached to fraudulent remote Homes + */ contract XAppConnectionManager is Ownable { - mapping(address => uint32) public replicaToDomain; - mapping(uint32 => address) public domainToReplica; + // ============ Public Storage ============ + // Home contract Home public home; - + // local Replica address => remote Home domain + mapping(address => uint32) public replicaToDomain; + // remote Home domain => local Replica address + mapping(uint32 => address) public domainToReplica; // watcher address => replica remote domain => has/doesn't have permission mapping(address => mapping(uint32 => bool)) private watcherPermissions; + // ============ Events ============ + + /** + * @notice Emitted when a new Replica is enrolled / added + * @param domain the remote domain of the Home contract for the Replica + * @param replica the address of the Replica + */ event ReplicaEnrolled(uint32 indexed domain, address replica); + /** + * @notice Emitted when a new Replica is un-enrolled / removed + * @param domain the remote domain of the Home contract for the Replica + * @param replica the address of the Replica + */ event ReplicaUnenrolled(uint32 indexed domain, address replica); + /** + * @notice Emitted when Watcher permissions are changed + * @param domain the remote domain of the Home contract for the Replica + * @param watcher the address of the Watcher + * @param access TRUE if the Watcher was given permissions, FALSE if permissions were removed + */ event WatcherPermissionSet( uint32 indexed domain, address watcher, bool access ); - // solhint-disable-next-line no-empty-blocks - constructor() Ownable() {} + // ============ Modifiers ============ modifier onlyReplica() { require(isReplica(msg.sender), "!replica"); _; } + // ============ Constructor ============ + + // solhint-disable-next-line no-empty-blocks + constructor() Ownable() {} + + // ============ External Functions ============ + + /** + * @notice Un-Enroll a replica contract + * in the case that fraud was detected on the Home + * @dev in the future, if fraud occurs on the Home contract, + * the Watcher will submit their signature directly to the Home + * and it can be relayed to all remote chains to un-enroll the Replicas + * @param _domain the remote domain of the Home contract for the Replica + * @param _updater the address of the Updater for the Home contract (also stored on Replica) + * @param _signature signature of watcher on (domain, replica address, updater address) + */ function unenrollReplica( uint32 _domain, bytes32 _updater, bytes memory _signature ) external { + // ensure that the replica is currently set address _replica = domainToReplica[_domain]; require(_replica != address(0), "!replica exists"); - + // ensure that the signature is on the proper updater require( Replica(_replica).updater() == TypeCasts.bytes32ToAddress(_updater), "!current updater" ); - + // get the watcher address from the signature + // and ensure that the watcher has permission to un-enroll this replica address _watcher = _recoverWatcherFromSig( _domain, TypeCasts.addressToBytes32(_replica), @@ -56,66 +102,108 @@ contract XAppConnectionManager is Ownable { _signature ); require(watcherPermissions[_watcher][_domain], "!valid watcher"); - + // remove the replica from mappings _unenrollReplica(_replica); } - function setHome(address _home) public onlyOwner { + /** + * @notice Set the address of the local Home contract + * @param _home the address of the local Home contract + */ + function setHome(address _home) external onlyOwner { home = Home(_home); } + /** + * @notice Allow Owner to enroll Replica contract + * @param _replica the address of the Replica + * @param _domain the remote domain of the Home contract for the Replica + */ function ownerEnrollReplica(address _replica, uint32 _domain) - public + external onlyOwner { + // un-enroll any existing replica _unenrollReplica(_replica); + // add replica and domain to two-way mapping replicaToDomain[_replica] = _domain; domainToReplica[_domain] = _replica; - emit ReplicaEnrolled(_domain, _replica); } - function ownerUnenrollReplica(address _replica) public onlyOwner { + /** + * @notice Allow Owner to un-enroll Replica contract + * @param _replica the address of the Replica + */ + function ownerUnenrollReplica(address _replica) external onlyOwner { _unenrollReplica(_replica); } + /** + * @notice Allow Owner to set Watcher permissions for a Replica + * @param _watcher the address of the Watcher + * @param _domain the remote domain of the Home contract for the Replica + * @param _access TRUE to give the Watcher permissions, FALSE to remove permissions + */ function setWatcherPermission( address _watcher, uint32 _domain, bool _access - ) public onlyOwner { + ) external onlyOwner { watcherPermissions[_watcher][_domain] = _access; emit WatcherPermissionSet(_domain, _watcher, _access); } - function localDomain() public view returns (uint32) { + /** + * @notice Query local domain from Home + * @return local domain + */ + function localDomain() external view returns (uint32) { return home.localDomain(); } - function isOwner(address _owner) public view returns (bool) { - return _owner == owner(); - } - - function isReplica(address _replica) public view returns (bool) { - return replicaToDomain[_replica] != 0; - } - + /** + * @notice Get access permissions for the watcher on the domain + * @param _watcher the address of the watcher + * @param _domain the domain to check for watcher permissions + * @return TRUE iff _watcher has permission to un-enroll replicas on _domain + */ function watcherPermission(address _watcher, uint32 _domain) - public + external view returns (bool) { return watcherPermissions[_watcher][_domain]; } + // ============ Public Functions ============ + + /** + * @notice Check whether _replica is enrolled + * @param _replica the replica to check for enrollment + * @return TRUE iff _replica is enrolled + */ + function isReplica(address _replica) public view returns (bool) { + return replicaToDomain[_replica] != 0; + } + + // ============ Internal Functions ============ + + /** + * @notice Remove the replica from the two-way mappings + * @param _replica replica to un-enroll + */ function _unenrollReplica(address _replica) internal { uint32 _currentDomain = replicaToDomain[_replica]; domainToReplica[_currentDomain] = address(0); replicaToDomain[_replica] = 0; - emit ReplicaUnenrolled(_currentDomain, _replica); } + /** + * @notice Get the Watcher address from the provided signature + * @return address of watcher that signed + */ function _recoverWatcherFromSig( uint32 _domain, bytes32 _replica, @@ -124,7 +212,6 @@ contract XAppConnectionManager is Ownable { ) internal view returns (address) { bytes32 _homeDomainHash = Replica(TypeCasts.bytes32ToAddress(_replica)) .homeDomainHash(); - bytes32 _digest = keccak256( abi.encodePacked(_homeDomainHash, _domain, _updater) ); diff --git a/solidity/optics-core/contracts/governance/GovernanceRouter.sol b/solidity/optics-core/contracts/governance/GovernanceRouter.sol index a6cfe5ed3..4ac99e57c 100644 --- a/solidity/optics-core/contracts/governance/GovernanceRouter.sol +++ b/solidity/optics-core/contracts/governance/GovernanceRouter.sol @@ -14,32 +14,62 @@ import {SafeMath} from "@openzeppelin/contracts/math/SafeMath.sol"; import {TypedMemView} from "@summa-tx/memview-sol/contracts/TypedMemView.sol"; contract GovernanceRouter is Version0, Initializable, IMessageRecipient { + // ============ Libraries ============ + using SafeMath for uint256; using TypedMemView for bytes; using TypedMemView for bytes29; using GovernanceMessage for bytes29; + // ============ Immutables ============ + uint32 public immutable localDomain; - uint256 public immutable recoveryTimelock; // number of seconds before recovery can be activated + // number of seconds before recovery can be activated + uint256 public immutable recoveryTimelock; + + // ============ Public Storage ============ + + // timestamp when recovery timelock expires; 0 if timelock has not been initiated + uint256 public recoveryActiveAt; + // the address of the recovery manager multisig + address public recoveryManager; + // the local entity empowered to call governance functions, set to 0x0 on non-Governor chains + address public governor; + // domain of Governor chain -- for accepting incoming messages from Governor + uint32 public governorDomain; + // xAppConnectionManager contract which stores Replica addresses + XAppConnectionManager public xAppConnectionManager; + // domain -> remote GovernanceRouter contract address + mapping(uint32 => bytes32) public routers; + // array of all domains with registered GovernanceRouter + uint32[] public domains; - uint256 public recoveryActiveAt; // timestamp when recovery timelock expires; 0 if timelock has not been initiated - address public recoveryManager; // the address of the recovery manager multisig + // ============ Upgrade Gap ============ - address public governor; // the local entity empowered to call governance functions, set to 0x0 on non-Governor chains - uint32 public governorDomain; // domain of Governor chain -- for accepting incoming messages from Governor + // gap for upgrade safety + uint256[43] private __GAP; - XAppConnectionManager public xAppConnectionManager; - - mapping(uint32 => bytes32) public routers; // registry of domain -> remote GovernanceRouter contract address - uint32[] public domains; // array of all domains registered - uint256[43] private __GAP; // gap for upgrade safety + // ============ Events ============ + /** + * @notice Emitted a remote GovernanceRouter address is added, removed, or changed + * @param domain the domain of the remote Router + * @param previousRouter the previously registered router; 0 if router is being added + * @param newRouter the new registered router; 0 if router is being removed + */ event SetRouter( uint32 indexed domain, bytes32 previousRouter, bytes32 newRouter ); + /** + * @notice Emitted when the Governor role is transferred + * @param previousGovernorDomain the domain of the previous Governor + * @param newGovernorDomain the domain of the new Governor + * @param previousGovernor the address of the previous Governor; 0 if the governor was remote + * @param newGovernor the address of the new Governor; 0 if the governor is remote + */ event TransferGovernor( uint32 previousGovernorDomain, uint32 newGovernorDomain, @@ -47,44 +77,39 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { address indexed newGovernor ); + /** + * @notice Emitted when the RecoveryManager role is transferred + * @param previousRecoveryManager the address of the previous RecoveryManager + * @param newRecoveryManager the address of the new RecoveryManager + */ event TransferRecoveryManager( address indexed previousRecoveryManager, address indexed newRecoveryManager ); - event InitiateRecovery(address indexed recoveryManager, uint256 endBlock); - event ExitRecovery(address recoveryManager); - - constructor(uint32 _localDomain, uint256 _recoveryTimelock) { - localDomain = _localDomain; - recoveryTimelock = _recoveryTimelock; - } - - function initialize( - address _xAppConnectionManager, - address _recoveryManager - ) public initializer { - // initialize governor - address _governorAddr = msg.sender; - bool _isLocalGovernor = true; - _transferGovernor(localDomain, _governorAddr, _isLocalGovernor); - - recoveryManager = _recoveryManager; - - // initialize XAppConnectionManager - setXAppConnectionManager(_xAppConnectionManager); + /** + * @notice Emitted when recovery state is initiated by the RecoveryManager + * @param recoveryManager the address of the current RecoveryManager who initiated the transition + * @param recoveryActiveAt the block at which recovery state will be active + */ + event InitiateRecovery( + address indexed recoveryManager, + uint256 recoveryActiveAt + ); - require( - xAppConnectionManager.localDomain() == localDomain, - "XAppConnectionManager bad domain" - ); - } + /** + * @notice Emitted when recovery state is exited by the RecoveryManager + * @param recoveryManager the address of the current RecoveryManager who initiated the transition + */ + event ExitRecovery(address recoveryManager); modifier typeAssert(bytes29 _view, GovernanceMessage.Types _type) { _view.assertType(uint40(_type)); _; } + // ============ Modifiers ============ + modifier onlyReplica() { require(xAppConnectionManager.isReplica(msg.sender), "!replica"); _; @@ -127,12 +152,39 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { _; } + // ============ Constructor ============ + + constructor(uint32 _localDomain, uint256 _recoveryTimelock) { + localDomain = _localDomain; + recoveryTimelock = _recoveryTimelock; + } + + // ============ Initializer ============ + + function initialize( + address _xAppConnectionManager, + address _recoveryManager + ) public initializer { + // initialize governor + address _governorAddr = msg.sender; + bool _isLocalGovernor = true; + _transferGovernor(localDomain, _governorAddr, _isLocalGovernor); + // initialize recovery manager + recoveryManager = _recoveryManager; + // initialize XAppConnectionManager + setXAppConnectionManager(_xAppConnectionManager); + require( + xAppConnectionManager.localDomain() == localDomain, + "XAppConnectionManager bad domain" + ); + } + + // ============ External Functions ============ + /** * @notice Handle Optics messages - * * For all non-Governor chains to handle messages * sent from the Governor chain via Optics. - * * Governor chain should never receive messages, * because non-Governor chains are not able to send them * @param _origin The domain (of the Governor Router) @@ -145,7 +197,6 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { bytes memory _message ) external override onlyReplica onlyGovernorRouter(_origin, _sender) { bytes29 _msg = _message.ref(0); - if (_msg.isValidCall()) { _handleCall(_msg.tryAsCall()); } else if (_msg.isValidTransferGovernor()) { @@ -179,10 +230,16 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { uint32 _destination, GovernanceMessage.Call[] calldata _calls ) external onlyGovernor onlyNotInRecovery { + // ensure that destination chain has enrolled router bytes32 _router = _mustHaveRouter(_destination); + // format call message bytes memory _msg = GovernanceMessage.formatCalls(_calls); - - Home(xAppConnectionManager.home()).enqueue(_destination, _router, _msg); + // dispatch call message using Optics + Home(xAppConnectionManager.home()).dispatch( + _destination, + _router, + _msg + ); } /** @@ -196,21 +253,23 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { onlyNotInRecovery { bool _isLocalGovernor = _isLocalDomain(_newDomain); - - _transferGovernor(_newDomain, _newGovernor, _isLocalGovernor); // transfer the governor locally - + // transfer the governor locally + _transferGovernor(_newDomain, _newGovernor, _isLocalGovernor); + // if the governor domain is local, we only need to change the governor address locally + // no need to message remote routers; they should already have the same domain set and governor = bytes32(0) if (_isLocalGovernor) { - // if the governor domain is local, we only need to change the governor address locally - // no need to message remote routers; they should already have the same domain set and governor = bytes32(0) return; } - + // format transfer governor message bytes memory _transferGovernorMessage = GovernanceMessage .formatTransferGovernor( _newDomain, TypeCasts.addressToBytes32(_newGovernor) ); - + // send transfer governor message to all remote routers + // note: this assumes that the Router is on the global GovernorDomain; + // this causes a process error when relinquishing governorship + // on a newly deployed domain which is not the GovernorDomain _sendToAllRemoteRouters(_transferGovernorMessage); } @@ -224,7 +283,6 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { onlyRecoveryManager { emit TransferRecoveryManager(recoveryManager, _newRecoveryManager); - recoveryManager = _newRecoveryManager; } @@ -239,8 +297,9 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { onlyGovernor onlyNotInRecovery { - _setRouter(_domain, _router); // set the router locally - + // set the router locally + _setRouter(_domain, _router); + // format message to set the router on all remote routers bytes memory _setRouterMessage = GovernanceMessage.formatSetRouter( _domain, _router @@ -261,7 +320,8 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { external onlyGovernorOrRecoveryManager { - _setRouter(_domain, _router); // set the router locally + // set the router locally + _setRouter(_domain, _router); } /** @@ -286,9 +346,8 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { onlyRecoveryManager { require(recoveryActiveAt == 0, "recovery already initiated"); - + // set the time that recovery will be active recoveryActiveAt = block.timestamp.add(recoveryTimelock); - emit InitiateRecovery(recoveryManager, recoveryActiveAt); } @@ -298,12 +357,16 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { */ function exitRecovery() external onlyRecoveryManager { require(recoveryActiveAt != 0, "recovery not initiated"); - delete recoveryActiveAt; - emit ExitRecovery(recoveryManager); } + // ============ Public Functions ============ + + /** + * @notice Check if the contract is in recovery mode currently + * @return TRUE iff the contract is actively in recovery mode currently + */ function inRecovery() public view returns (bool) { uint256 _recoveryActiveAt = recoveryActiveAt; bool _recoveryInitiated = _recoveryActiveAt != 0; @@ -311,6 +374,8 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { return _recoveryInitiated && _recoveryActive; } + // ============ Internal Functions ============ + /** * @notice Handle message dispatching calls locally * @param _msg The message @@ -336,7 +401,6 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { uint32 _newDomain = _msg.domain(); address _newGovernor = TypeCasts.bytes32ToAddress(_msg.governor()); bool _isLocalGovernor = _isLocalDomain(_newDomain); - _transferGovernor(_newDomain, _newGovernor, _isLocalGovernor); } @@ -350,7 +414,6 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { { uint32 _domain = _msg.domain(); bytes32 _router = _msg.router(); - _setRouter(_domain, _router); } @@ -363,7 +426,7 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { for (uint256 i = 0; i < domains.length; i++) { if (domains[i] != uint32(0)) { - _home.enqueue(domains[i], routers[domains[i]], _msg); + _home.dispatch(domains[i], routers[domains[i]], _msg); } } } @@ -378,10 +441,10 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { returns (bytes memory _ret) { address _toContract = TypeCasts.bytes32ToAddress(_call.to); - + // attempt to dispatch using low-level call bool _success; (_success, _ret) = _toContract.call(_call.data); - + // revert if the call failed require(_success, "call failed"); } @@ -400,14 +463,13 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { if (!_isLocalGovernor) { _mustHaveRouter(_newDomain); } - // Governor is 0x0 unless the governor is local address _newGov = _isLocalGovernor ? _newGovernor : address(0); - + // emit event before updating state variables + emit TransferGovernor(governorDomain, _newDomain, governor, _newGov); + // update state governorDomain = _newDomain; governor = _newGov; - - emit TransferGovernor(governorDomain, _newDomain, governor, _newGov); } /** @@ -417,18 +479,18 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { */ function _setRouter(uint32 _domain, bytes32 _newRouter) internal { bytes32 _previousRouter = routers[_domain]; - + // emit event at beginning in case return after remove emit SetRouter(_domain, _previousRouter, _newRouter); - + // if the router is being removed, remove the domain if (_newRouter == bytes32(0)) { _removeDomain(_domain); return; } - + // if the router is being added, add the domain if (_previousRouter == bytes32(0)) { _addDomain(_domain); } - + // update state with new router routers[_domain] = _newRouter; } @@ -446,7 +508,6 @@ contract GovernanceRouter is Version0, Initializable, IMessageRecipient { */ function _removeDomain(uint32 _domain) internal { delete routers[_domain]; - // find the index of the domain to remove & delete it from domains[] for (uint256 i = 0; i < domains.length; i++) { if (domains[i] == _domain) { diff --git a/solidity/optics-core/contracts/test/TestHome.sol b/solidity/optics-core/contracts/test/TestHome.sol index 98a596f80..c86805015 100644 --- a/solidity/optics-core/contracts/test/TestHome.sol +++ b/solidity/optics-core/contracts/test/TestHome.sol @@ -17,12 +17,12 @@ contract TestHome is Home { return homeDomainHash(); } - function testDestinationAndSequence(uint32 _destination, uint32 _sequence) + function testDestinationAndNonce(uint32 _destination, uint32 _nonce) external pure returns (uint64) { - return _destinationAndSequence(_destination, _sequence); + return _destinationAndNonce(_destination, _nonce); } function setFailed() public { diff --git a/solidity/optics-core/contracts/test/TestMessage.sol b/solidity/optics-core/contracts/test/TestMessage.sol index 5c2cd059c..f60bf5e63 100644 --- a/solidity/optics-core/contracts/test/TestMessage.sol +++ b/solidity/optics-core/contracts/test/TestMessage.sol @@ -21,8 +21,8 @@ contract TestMessage { return _message.ref(0).sender(); } - function sequence(bytes memory _message) external pure returns (uint32) { - return _message.ref(0).sequence(); + function nonce(bytes memory _message) external pure returns (uint32) { + return _message.ref(0).nonce(); } function destination(bytes memory _message) external pure returns (uint32) { diff --git a/solidity/optics-core/contracts/test/TestReplica.sol b/solidity/optics-core/contracts/test/TestReplica.sol index 48f13f3d0..d6a155c66 100644 --- a/solidity/optics-core/contracts/test/TestReplica.sol +++ b/solidity/optics-core/contracts/test/TestReplica.sol @@ -24,11 +24,11 @@ contract TestReplica is Replica { function setMessagePending(bytes memory _message) external { bytes29 _m = _message.ref(0); - messages[_m.keccak()] = MessageStatus.Pending; + messages[_m.keccak()] = MessageStatus.Proven; } - function setCurrentRoot(bytes32 _newRoot) external { - current = _newRoot; + function setCommittedRoot(bytes32 _newRoot) external { + committedRoot = _newRoot; confirmAt[_newRoot] = 1; } diff --git a/solidity/optics-core/libs/Message.sol b/solidity/optics-core/libs/Message.sol index 15c51d648..7b416ada5 100644 --- a/solidity/optics-core/libs/Message.sol +++ b/solidity/optics-core/libs/Message.sol @@ -23,7 +23,7 @@ library Message { * @notice Returns formatted (packed) message with provided fields * @param _originDomain Domain of home chain * @param _sender Address of sender as bytes32 - * @param _sequence Destination-specific sequence number + * @param _nonce Destination-specific nonce * @param _destinationDomain Domain of destination chain * @param _recipient Address of recipient on destination chain as bytes32 * @param _messageBody Raw bytes of message body @@ -32,7 +32,7 @@ library Message { function formatMessage( uint32 _originDomain, bytes32 _sender, - uint32 _sequence, + uint32 _nonce, uint32 _destinationDomain, bytes32 _recipient, bytes memory _messageBody @@ -41,7 +41,7 @@ library Message { abi.encodePacked( _originDomain, _sender, - _sequence, + _nonce, _destinationDomain, _recipient, _messageBody @@ -52,7 +52,7 @@ library Message { * @notice Returns leaf of formatted message with provided fields. * @param _origin Domain of home chain * @param _sender Address of sender as bytes32 - * @param _sequence Destination-specific sequence number + * @param _nonce Destination-specific nonce number * @param _destination Domain of destination chain * @param _recipient Address of recipient on destination chain as bytes32 * @param _body Raw bytes of message body @@ -61,7 +61,7 @@ library Message { function messageHash( uint32 _origin, bytes32 _sender, - uint32 _sequence, + uint32 _nonce, uint32 _destination, bytes32 _recipient, bytes memory _body @@ -71,7 +71,7 @@ library Message { formatMessage( _origin, _sender, - _sequence, + _nonce, _destination, _recipient, _body @@ -89,8 +89,8 @@ library Message { return _message.index(4, 32); } - /// @notice Returns message's sequence field - function sequence(bytes29 _message) internal pure returns (uint32) { + /// @notice Returns message's nonce field + function nonce(bytes29 _message) internal pure returns (uint32) { return uint32(_message.indexUint(36, 4)); } @@ -119,6 +119,6 @@ library Message { } function leaf(bytes29 _message) internal view returns (bytes32) { - return messageHash(origin(_message), sender(_message), sequence(_message), destination(_message), recipient(_message), TypedMemView.clone(body(_message))); + return messageHash(origin(_message), sender(_message), nonce(_message), destination(_message), recipient(_message), TypedMemView.clone(body(_message))); } } diff --git a/solidity/optics-xapps/contracts/bridge/BridgeRouter.sol b/solidity/optics-xapps/contracts/bridge/BridgeRouter.sol index a9c14f009..b4094be6c 100644 --- a/solidity/optics-xapps/contracts/bridge/BridgeRouter.sol +++ b/solidity/optics-xapps/contracts/bridge/BridgeRouter.sol @@ -139,7 +139,7 @@ contract BridgeRouter is Version0, Router, TokenRegistry { // format Transfer Tokens action bytes29 _action = BridgeMessage.formatTransfer(_recipient, _amount); // send message to remote chain via Optics - Home(xAppConnectionManager.home()).enqueue( + Home(xAppConnectionManager.home()).dispatch( _destination, _remote, BridgeMessage.formatMessage(_formatTokenId(_token), _action) @@ -346,7 +346,7 @@ contract BridgeRouter is Version0, Router, TokenRegistry { _bridgeToken.decimals() ); // send message to remote chain via Optics - Home(xAppConnectionManager.home()).enqueue( + Home(xAppConnectionManager.home()).dispatch( _messageOrigin, _messageRemoteRouter, BridgeMessage.formatMessage(_tokenId, _updateDetailsAction) @@ -384,7 +384,7 @@ contract BridgeRouter is Version0, Router, TokenRegistry { // format Request Details message bytes29 _action = BridgeMessage.formatRequestDetails(); // send message to remote chain via Optics - Home(xAppConnectionManager.home()).enqueue( + Home(xAppConnectionManager.home()).dispatch( _destination, _remote, BridgeMessage.formatMessage(_tokenId, _action) diff --git a/solidity/optics-xapps/contracts/bridge/test/MockCore.sol b/solidity/optics-xapps/contracts/bridge/test/MockCore.sol index b97390175..99c74d8fd 100644 --- a/solidity/optics-xapps/contracts/bridge/test/MockCore.sol +++ b/solidity/optics-xapps/contracts/bridge/test/MockCore.sol @@ -9,7 +9,7 @@ import {MerkleLib} from "@celo-org/optics-sol/libs/Merkle.sol"; import {QueueLib} from "@celo-org/optics-sol/libs/Queue.sol"; // We reproduce a significant amount of logic from `Home` to ensure that -// calling enqueue here is AT LEAST AS EXPENSIVE as calling it on home +// calling dispatch here is AT LEAST AS EXPENSIVE as calling it on home contract MockCore is MerkleTreeManager, QueueManager { using QueueLib for QueueLib.Queue; using MerkleLib for MerkleLib.Tree; @@ -23,12 +23,12 @@ contract MockCore is MerkleTreeManager, QueueManager { ); event Dispatch( uint256 indexed leafIndex, - uint64 indexed destinationAndSequence, + uint64 indexed destinationAndNonce, bytes32 indexed leaf, bytes message ); - mapping(uint32 => uint32) public sequences; + mapping(uint32 => uint32) public nonces; function localDomain() public pure returns (uint32) { return 5; @@ -39,18 +39,18 @@ contract MockCore is MerkleTreeManager, QueueManager { } // We reproduce the logic here to simulate - function enqueue( + function dispatch( uint32 _destination, bytes32 _recipient, bytes calldata _body ) external { require(_body.length <= MAX_MESSAGE_BODY_BYTES, "!too big"); - uint32 _sequence = sequences[_destination]; + uint32 _nonce = nonces[_destination]; bytes memory _message = Message.formatMessage( localDomain(), bytes32(uint256(uint160(msg.sender))), - _sequence, + _nonce, _destination, _recipient, _body @@ -63,24 +63,24 @@ contract MockCore is MerkleTreeManager, QueueManager { // leafIndex is count() - 1 since new leaf has already been inserted emit Dispatch( count() - 1, - _destinationAndSequence(_destination, _sequence), + _destinationAndNonce(_destination, _nonce), _leaf, _message ); emit Enqueue(_destination, _recipient, _body); - sequences[_destination] = _sequence + 1; + nonces[_destination] = _nonce + 1; } function isReplica(address) public pure returns (bool) { return true; } - function _destinationAndSequence(uint32 _destination, uint32 _sequence) + function _destinationAndNonce(uint32 _destination, uint32 _nonce) internal pure returns (uint64) { - return (uint64(_destination) << 32) | _sequence; + return (uint64(_destination) << 32) | _nonce; } } diff --git a/solidity/optics-xapps/contracts/ping-pong/PingPongRouter.sol b/solidity/optics-xapps/contracts/ping-pong/PingPongRouter.sol index fd98da76b..27c415df6 100644 --- a/solidity/optics-xapps/contracts/ping-pong/PingPongRouter.sol +++ b/solidity/optics-xapps/contracts/ping-pong/PingPongRouter.sol @@ -64,7 +64,6 @@ contract PingPongRouter is Router { bytes memory _message ) external override onlyReplica onlyRemoteRouter(_origin, _sender) { bytes29 _msg = _message.ref(0); - if (_msg.isPing()) { _handlePing(_origin, _msg); } else if (_msg.isPong()) { @@ -109,10 +108,8 @@ contract PingPongRouter is Router { // get the volley count for this game uint256 _count = _message.count(); uint32 _match = _message.matchId(); - // emit a Received event emit Received(_origin, _match, _count, _isPing); - // send the opposite volley back _send(_origin, !_isPing, _match, _count + 1); } @@ -127,11 +124,9 @@ contract PingPongRouter is Router { function initiatePingPongMatch(uint32 _destinationDomain) external { // the PingPong match always begins with a Ping volley bool _isPing = true; - // increment match counter uint32 _match = nextMatch; nextMatch = _match + 1; - // send the first volley to the destination domain _send(_destinationDomain, _isPing, _match, 0); } @@ -150,15 +145,12 @@ contract PingPongRouter is Router { ) internal { // get the xApp Router at the destinationDomain bytes32 _remoteRouterAddress = _mustHaveRemote(_destinationDomain); - // format the ping message bytes memory _message = _isPing ? PingPongMessage.formatPing(_match, _count) : PingPongMessage.formatPong(_match, _count); - // send the message to the xApp Router - (_home()).enqueue(_destinationDomain, _remoteRouterAddress, _message); - + (_home()).dispatch(_destinationDomain, _remoteRouterAddress, _message); // emit a Sent event emit Sent(_destinationDomain, _match, _count, _isPing); } diff --git a/solidity/optics-xapps/contracts/xapp-template/RouterTemplate.sol b/solidity/optics-xapps/contracts/xapp-template/RouterTemplate.sol index 85bcfbe4a..66d58e622 100644 --- a/solidity/optics-xapps/contracts/xapp-template/RouterTemplate.sol +++ b/solidity/optics-xapps/contracts/xapp-template/RouterTemplate.sol @@ -53,7 +53,6 @@ contract RouterTemplate is Router { bytes memory _message ) external override onlyReplica onlyRemoteRouter(_origin, _sender) { bytes29 _msg = _message.ref(0); - // route message to appropriate _handle function // based on what type of message is encoded if (_msg.isTypeA()) { @@ -73,7 +72,6 @@ contract RouterTemplate is Router { function _handleTypeA(bytes29 _message) internal { // parse the information from the message uint256 _number = _message.number(); - // implement the logic for executing the action // (in this example case, emit an event with the number that was sent) emit TypeAReceived(_number); @@ -95,12 +93,10 @@ contract RouterTemplate is Router { { // get the xApp Router at the destinationDomain bytes32 _remoteRouterAddress = _mustHaveRemote(_destinationDomain); - // encode a message to send to the remote xApp Router bytes memory _outboundMessage = Message.formatTypeA(_number); - // send the message to the xApp Router - _home().enqueue( + _home().dispatch( _destinationDomain, _remoteRouterAddress, _outboundMessage diff --git a/typescript/optics-deploy/src/core/index.ts b/typescript/optics-deploy/src/core/index.ts index e02809389..f6ef58daa 100644 --- a/typescript/optics-deploy/src/core/index.ts +++ b/typescript/optics-deploy/src/core/index.ts @@ -532,7 +532,7 @@ async function deployHubAndSpokes(gov: CoreDeploy, spokes: CoreDeploy[]) { * that have been deployed, initialized, and configured * according to the deployOptics script * - * @dev The first chain in the sequence will be the governing chain + * @dev The first chain in the array will be the governing chain * * @param deploys - An array of chain deploys */ diff --git a/typescript/optics-tests/lib/core.ts b/typescript/optics-tests/lib/core.ts index 28218d24e..45f18f379 100644 --- a/typescript/optics-tests/lib/core.ts +++ b/typescript/optics-tests/lib/core.ts @@ -104,7 +104,7 @@ function formatSetRouter(domain: types.Domain, address: types.Address): string { ); } -function messageToLeaf(message: types.HexString): string { +function messageHash(message: types.HexString): string { return ethers.utils.solidityKeccak256(['bytes'], [message]); } @@ -114,7 +114,7 @@ function ethersAddressToBytes32(address: types.Address): string { .toLowerCase(); } -function destinationAndSequence( +function destinationAndNonce( destination: types.Domain, sequence: number, ): ethers.BigNumber { @@ -193,9 +193,9 @@ export const optics: types.HardhatOpticsHelpers = { formatSetRouter, formatCalls, }, - messageToLeaf, + messageHash, ethersAddressToBytes32, - destinationAndSequence, + destinationAndNonce, domainHash, signedFailureNotification, }; \ No newline at end of file diff --git a/typescript/optics-tests/lib/types.ts b/typescript/optics-tests/lib/types.ts index 5e58a48fb..7482d8f88 100644 --- a/typescript/optics-tests/lib/types.ts +++ b/typescript/optics-tests/lib/types.ts @@ -11,9 +11,9 @@ export interface HardhatOpticsHelpers { formatSetRouter: Function; formatCalls: Function; }; - messageToLeaf: Function; + messageHash: Function; ethersAddressToBytes32: Function; - destinationAndSequence: Function; + destinationAndNonce: Function; domainHash: Function; signedFailureNotification: Function; } diff --git a/typescript/optics-tests/package-lock.json b/typescript/optics-tests/package-lock.json index 67ad2a920..c072d4cb9 100644 --- a/typescript/optics-tests/package-lock.json +++ b/typescript/optics-tests/package-lock.json @@ -1,15969 +1,24 @@ { "name": "optics-ts", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "optics-ts", - "version": "1.0.0", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@types/node": "^15.14.7", - "dotenv": "^10.0.0", - "ethers": "^5.4.1" - }, - "devDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.2", - "@nomiclabs/hardhat-waffle": "^2.0.1", - "@typechain/ethers-v5": "^7.0.0", - "@types/chai": "^4.2.18", - "@types/mocha": "^8.2.2", - "chai": "^4.3.4", - "ethereum-waffle": "^3.3.0", - "ethers": "^5.4.4", - "hardhat": "^2.3.0", - "mkdirp": "^1.0.4", - "prettier": "2.3.0", - "ts-node": "^10.0.0", - "typechain": "^5.0.0", - "typescript": "^4.3.2" - } - }, - "node_modules/@ensdomains/ens": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", - "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.2", - "eth-ens-namehash": "^2.0.8", - "solc": "^0.4.20", - "testrpc": "0.0.1", - "web3-utils": "^1.0.0-beta.31" - } - }, - "node_modules/@ensdomains/resolver": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", - "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==", - "dev": true - }, - "node_modules/@ethereum-waffle/chai": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-3.4.0.tgz", - "integrity": "sha512-GVaFKuFbFUclMkhHtQTDnWBnBQMJc/pAbfbFj/nnIK237WPLsO3KDDslA7m+MNEyTAOFrcc0CyfruAGGXAQw3g==", - "dev": true, - "dependencies": { - "@ethereum-waffle/provider": "^3.4.0", - "ethers": "^5.0.0" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@ethereum-waffle/compiler": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-3.4.0.tgz", - "integrity": "sha512-a2wxGOoB9F1QFRE+Om7Cz2wn+pxM/o7a0a6cbwhaS2lECJgFzeN9xEkVrKahRkF4gEfXGcuORg4msP0Asxezlw==", - "dev": true, - "dependencies": { - "@resolver-engine/imports": "^0.3.3", - "@resolver-engine/imports-fs": "^0.3.3", - "@typechain/ethers-v5": "^2.0.0", - "@types/mkdirp": "^0.5.2", - "@types/node-fetch": "^2.5.5", - "ethers": "^5.0.1", - "mkdirp": "^0.5.1", - "node-fetch": "^2.6.1", - "solc": "^0.6.3", - "ts-generator": "^0.1.1", - "typechain": "^3.0.0" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/@typechain/ethers-v5": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz", - "integrity": "sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw==", - "dev": true, - "dependencies": { - "ethers": "^5.0.2" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@ethereum-waffle/compiler/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==", - "dev": true - }, - "node_modules/@ethereum-waffle/compiler/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@ethereum-waffle/compiler/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==", - "dev": true - }, - "node_modules/@ethereum-waffle/compiler/node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/solc": { - "version": "0.6.12", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.12.tgz", - "integrity": "sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/ts-essentials": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-6.0.7.tgz", - "integrity": "sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw==", - "dev": true - }, - "node_modules/@ethereum-waffle/compiler/node_modules/typechain": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-3.0.0.tgz", - "integrity": "sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg==", - "dev": true, - "dependencies": { - "command-line-args": "^4.0.7", - "debug": "^4.1.1", - "fs-extra": "^7.0.0", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "ts-essentials": "^6.0.3", - "ts-generator": "^0.1.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - } - }, - "node_modules/@ethereum-waffle/compiler/node_modules/typechain/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@ethereum-waffle/ens": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-3.3.0.tgz", - "integrity": "sha512-zVIH/5cQnIEgJPg1aV8+ehYicpcfuAisfrtzYh1pN3UbfeqPylFBeBaIZ7xj/xYzlJjkrek/h9VfULl6EX9Aqw==", - "dev": true, - "dependencies": { - "@ensdomains/ens": "^0.4.4", - "@ensdomains/resolver": "^0.2.4", - "ethers": "^5.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@ethereum-waffle/mock-contract": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-3.3.0.tgz", - "integrity": "sha512-apwq0d+2nQxaNwsyLkE+BNMBhZ1MKGV28BtI9WjD3QD2Ztdt1q9II4sKA4VrLTUneYSmkYbJZJxw89f+OpJGyw==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.0.1", - "ethers": "^5.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@ethereum-waffle/provider": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-3.4.0.tgz", - "integrity": "sha512-QgseGzpwlzmaHXhqfdzthCGu5a6P1SBF955jQHf/rBkK1Y7gGo2ukt3rXgxgfg/O5eHqRU+r8xw5MzVyVaBscQ==", - "dev": true, - "dependencies": { - "@ethereum-waffle/ens": "^3.3.0", - "ethers": "^5.0.1", - "ganache-core": "^2.13.2", - "patch-package": "^6.2.2", - "postinstall-postinstall": "^2.1.0" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@ethereumjs/block": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.4.0.tgz", - "integrity": "sha512-umKAoTX32yXzErpIksPHodFc/5y8bmZMnOl6hWy5Vd8xId4+HKFUOyEiN16Y97zMwFRysRpcrR6wBejfqc6Bmg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "ethereumjs-util": "^7.1.0", - "merkle-patricia-tree": "^4.2.0" - } - }, - "node_modules/@ethereumjs/blockchain": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.4.0.tgz", - "integrity": "sha512-wAuKLaew6PL52kH8YPXO7PbjjKV12jivRSyHQehkESw4slSLLfYA6Jv7n5YxyT2ajD7KNMPVh7oyF/MU6HcOvg==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.4.0", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/ethash": "^1.0.0", - "debug": "^2.2.0", - "ethereumjs-util": "^7.1.0", - "level-mem": "^5.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.4", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@ethereumjs/blockchain/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/@ethereumjs/common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", - "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.0" - } - }, - "node_modules/@ethereumjs/ethash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.0.0.tgz", - "integrity": "sha512-iIqnGG6NMKesyOxv2YctB2guOVX18qMAWlj3QlZyrc+GqfzLqoihti+cVNQnyNxr7eYuPdqwLQOFuPe6g/uKjw==", - "dev": true, - "dependencies": { - "@types/levelup": "^4.3.0", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.0.7", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/@ethereumjs/ethash/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", - "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "^2.4.0", - "ethereumjs-util": "^7.1.0" - } - }, - "node_modules/@ethereumjs/vm": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.5.0.tgz", - "integrity": "sha512-h6Kr6WqKUP8nVuEzCWPWEPrC63v7HFwt3gRuK7CJiyg9S0iWSBKUA/YVD4YgaSVACuxUfWaOBbwV5uGVupm5PQ==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.4.0", - "@ethereumjs/blockchain": "^5.4.0", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "async-eventemitter": "^0.2.4", - "core-js-pure": "^3.0.1", - "debug": "^2.2.0", - "ethereumjs-util": "^7.1.0", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "merkle-patricia-tree": "^4.2.0", - "rustbn.js": "~0.2.0", - "util.promisify": "^1.0.1" - } - }, - "node_modules/@ethereumjs/vm/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@ethereumjs/vm/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/@ethersproject/abi": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.0.tgz", - "integrity": "sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw==", - "dev": true, - "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", - "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", - "dev": true, - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", - "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", - "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", - "dev": true, - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/rlp": "^5.4.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", - "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", - "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", - "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", - "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", - "dev": true, - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", - "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", - "dev": true, - "dependencies": { - "@ethersproject/bignumber": "^5.4.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.4.1.tgz", - "integrity": "sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.4.0", - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", - "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.4.0.tgz", - "integrity": "sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/pbkdf2": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/wordlists": "^5.4.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz", - "integrity": "sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hdnode": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/pbkdf2": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", - "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "js-sha3": "0.5.7" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.0.tgz", - "integrity": "sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==", - "dev": true - }, - "node_modules/@ethersproject/networks": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", - "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", - "dev": true, - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz", - "integrity": "sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/sha2": "^5.4.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", - "integrity": "sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==", - "dev": true, - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.3.tgz", - "integrity": "sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/basex": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/random": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", - "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", - "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", - "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", - "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.4.0.tgz", - "integrity": "sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ==", - "dev": true, - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/sha2": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", - "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", - "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", - "dev": true, - "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.4.0.tgz", - "integrity": "sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg==", - "dev": true, - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.4.0.tgz", - "integrity": "sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ==", - "dev": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/hdnode": "^5.4.0", - "@ethersproject/json-wallets": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/random": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/wordlists": "^5.4.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", - "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", - "dev": true, - "dependencies": { - "@ethersproject/base64": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.4.0.tgz", - "integrity": "sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA==", - "dev": true, - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.2.tgz", - "integrity": "sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg==", - "dev": true - }, - "node_modules/@nomiclabs/hardhat-waffle": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.1.tgz", - "integrity": "sha512-2YR2V5zTiztSH9n8BYWgtv3Q+EL0N5Ltm1PAr5z20uAY4SkkfylJ98CIqt18XFvxTD5x4K2wKBzddjV9ViDAZQ==", - "dev": true, - "dependencies": { - "@types/sinon-chai": "^3.2.3", - "@types/web3": "1.0.19" - } - }, - "node_modules/@resolver-engine/core": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz", - "integrity": "sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "is-url": "^1.2.4", - "request": "^2.85.0" - } - }, - "node_modules/@resolver-engine/fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz", - "integrity": "sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0" - } - }, - "node_modules/@resolver-engine/imports": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz", - "integrity": "sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q==", - "dev": true, - "dependencies": { - "@resolver-engine/core": "^0.3.3", - "debug": "^3.1.0", - "hosted-git-info": "^2.6.0", - "path-browserify": "^1.0.0", - "url": "^0.11.0" - } - }, - "node_modules/@resolver-engine/imports-fs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz", - "integrity": "sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA==", - "dev": true, - "dependencies": { - "@resolver-engine/fs": "^0.3.3", - "@resolver-engine/imports": "^0.3.3", - "debug": "^3.1.0" - } - }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@solidity-parser/parser": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.11.1.tgz", - "integrity": "sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ==", - "dev": true - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", - "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", - "dev": true - }, - "node_modules/@typechain/ethers-v5": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-7.0.1.tgz", - "integrity": "sha512-mXEJ7LG0pOYO+MRPkHtbf30Ey9X2KAsU0wkeoVvjQIn7iAY6tB3k3s+82bbmJAUMyENbQ04RDOZit36CgSG6Gg==", - "dev": true - }, - "node_modules/@types/abstract-leveldown": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-5.0.2.tgz", - "integrity": "sha512-+jA1XXF3jsz+Z7FcuiNqgK53hTa/luglT2TyTpKPqoYbxVY+mCPF22Rm+q3KPBrMHJwNXFrTViHszBOfU4vftQ==", - "dev": true - }, - "node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.2.21", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz", - "integrity": "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==", - "dev": true - }, - "node_modules/@types/level-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/level-errors/-/level-errors-3.0.0.tgz", - "integrity": "sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ==", - "dev": true - }, - "node_modules/@types/levelup": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.3.tgz", - "integrity": "sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==", - "dev": true, - "dependencies": { - "@types/abstract-leveldown": "*", - "@types/level-errors": "*", - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "15.14.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.7.tgz", - "integrity": "sha512-FA45p37/mLhpebgbPWWCKfOisTjxGK9lwcHlJ6XVLfu3NgfcazOJHdYUZCWPMK8QX4LhNZdmfo6iMz9FqpUbaw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.11.tgz", - "integrity": "sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", - "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/sinon": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", - "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", - "dev": true, - "dependencies": { - "@sinonjs/fake-timers": "^7.1.0" - } - }, - "node_modules/@types/sinon-chai": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.5.tgz", - "integrity": "sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ==", - "dev": true, - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "node_modules/@types/underscore": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.3.tgz", - "integrity": "sha512-Fl1TX1dapfXyDqFg2ic9M+vlXRktcPJrc4PR7sRc7sdVrjavg/JHlbUXBt8qWWqhJrmSqg3RNAkAPRiOYw6Ahw==", - "dev": true - }, - "node_modules/@types/web3": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.0.19.tgz", - "integrity": "sha512-fhZ9DyvDYDwHZUp5/STa9XW2re0E8GxoioYJ4pEUZ13YHpApSagixj7IAdoYH5uAK+UalGq6Ml8LYzmgRA/q+A==", - "dev": true, - "dependencies": { - "@types/bn.js": "*", - "@types/underscore": "*" - } - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-leveldown": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", - "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/agent-base/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==", - "dev": true - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "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==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", - "dev": true - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "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==", - "dev": true, - "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": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "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/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.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==", - "dev": true, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz", - "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "find-replace": "^1.0.3", - "typical": "^2.6.1" - }, - "bin": { - "command-line-args": "bin/cli.js" - } - }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-js-pure": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", - "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deferred-leveldown": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", - "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.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==", - "dev": true, - "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/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/encoding-down": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", - "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "^6.2.1", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-sig-util": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz", - "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==", - "dev": true, - "dependencies": { - "ethereumjs-abi": "0.6.8", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eth-sig-util/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dev": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-bloom-filters/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==", - "dev": true - }, - "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==", - "dev": true, - "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/ethereum-waffle": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-3.4.0.tgz", - "integrity": "sha512-ADBqZCkoSA5Isk486ntKJVjFEawIiC+3HxNqpJqONvh3YXBTNiRfXvJtGuAFLXPG91QaqkGqILEHANAo7j/olQ==", - "dev": true, - "dependencies": { - "@ethereum-waffle/chai": "^3.4.0", - "@ethereum-waffle/compiler": "^3.4.0", - "@ethereum-waffle/mock-contract": "^3.3.0", - "@ethereum-waffle/provider": "^3.4.0", - "ethers": "^5.0.1" - }, - "bin": { - "waffle": "bin/waffle" - }, - "engines": { - "node": ">=10.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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==", - "dev": true, - "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.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", - "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "node_modules/ethers": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.4.4.tgz", - "integrity": "sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "5.4.0", - "@ethersproject/abstract-provider": "5.4.1", - "@ethersproject/abstract-signer": "5.4.1", - "@ethersproject/address": "5.4.0", - "@ethersproject/base64": "5.4.0", - "@ethersproject/basex": "5.4.0", - "@ethersproject/bignumber": "5.4.1", - "@ethersproject/bytes": "5.4.0", - "@ethersproject/constants": "5.4.0", - "@ethersproject/contracts": "5.4.1", - "@ethersproject/hash": "5.4.0", - "@ethersproject/hdnode": "5.4.0", - "@ethersproject/json-wallets": "5.4.0", - "@ethersproject/keccak256": "5.4.0", - "@ethersproject/logger": "5.4.0", - "@ethersproject/networks": "5.4.2", - "@ethersproject/pbkdf2": "5.4.0", - "@ethersproject/properties": "5.4.0", - "@ethersproject/providers": "5.4.3", - "@ethersproject/random": "5.4.0", - "@ethersproject/rlp": "5.4.0", - "@ethersproject/sha2": "5.4.0", - "@ethersproject/signing-key": "5.4.0", - "@ethersproject/solidity": "5.4.0", - "@ethersproject/strings": "5.4.0", - "@ethersproject/transactions": "5.4.0", - "@ethersproject/units": "5.4.0", - "@ethersproject/wallet": "5.4.0", - "@ethersproject/web": "5.4.0", - "@ethersproject/wordlists": "5.4.0" - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-replace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz", - "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=", - "dev": true, - "dependencies": { - "array-back": "^1.0.4", - "test-value": "^2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dev": true, - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": 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==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/ganache-core": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz", - "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==", - "bundleDependencies": [ - "keccak", - "node-addon-api", - "node-gyp-build" - ], - "dev": true, - "dependencies": { - "abstract-leveldown": "3.0.0", - "async": "2.6.2", - "bip39": "2.5.0", - "cachedown": "1.0.0", - "clone": "2.1.2", - "debug": "3.2.6", - "encoding-down": "5.0.4", - "eth-sig-util": "3.0.0", - "ethereumjs-abi": "0.6.8", - "ethereumjs-account": "3.0.0", - "ethereumjs-block": "2.2.2", - "ethereumjs-common": "1.5.0", - "ethereumjs-tx": "2.1.2", - "ethereumjs-util": "6.2.1", - "ethereumjs-vm": "4.2.0", - "heap": "0.2.6", - "keccak": "3.0.1", - "level-sublevel": "6.6.4", - "levelup": "3.1.1", - "lodash": "4.17.20", - "lru-cache": "5.1.1", - "merkle-patricia-tree": "3.0.0", - "patch-package": "6.2.2", - "seedrandom": "3.0.1", - "source-map-support": "0.5.12", - "tmp": "0.1.0", - "web3-provider-engine": "14.2.1", - "websocket": "1.0.32" - }, - "engines": { - "node": ">=8.9.0" - }, - "optionalDependencies": { - "ethereumjs-wallet": "0.6.5", - "web3": "1.2.11" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abi": { - "version": "5.0.0-beta.153", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", - "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/address": ">=5.0.0-beta.128", - "@ethersproject/bignumber": ">=5.0.0-beta.130", - "@ethersproject/bytes": ">=5.0.0-beta.129", - "@ethersproject/constants": ">=5.0.0-beta.128", - "@ethersproject/hash": ">=5.0.0-beta.128", - "@ethersproject/keccak256": ">=5.0.0-beta.127", - "@ethersproject/logger": ">=5.0.0-beta.129", - "@ethersproject/properties": ">=5.0.0-beta.131", - "@ethersproject/strings": ">=5.0.0-beta.130" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.8.tgz", - "integrity": "sha512-fqJXkewcGdi8LogKMgRyzc/Ls2js07yor7+g9KfPs09uPOcQLg7cc34JN+lk34HH9gg2HU0DIA5797ZR8znkfw==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/networks": "^5.0.7", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/transactions": "^5.0.9", - "@ethersproject/web": "^5.0.12" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.10.tgz", - "integrity": "sha512-irx7kH7FDAeW7QChDPW19WsxqeB1d3XLyOLSXm0bfPqL1SS07LXWltBJUBUxqC03ORpAOcM3JQj57DU8JnVY2g==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.0.8", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/address": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.9.tgz", - "integrity": "sha512-gKkmbZDMyGbVjr8nA5P0md1GgESqSGH7ILIrDidPdNXBl4adqbuA3OAuZx/O2oGpL6PtJ9BDa0kHheZ1ToHU3w==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/rlp": "^5.0.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/base64": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.7.tgz", - "integrity": "sha512-S5oh5DVfCo06xwJXT8fQC68mvJfgScTl2AXvbYMsHNfIBTDb084Wx4iA9MNlEReOv6HulkS+gyrUM/j3514rSw==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/bignumber": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.13.tgz", - "integrity": "sha512-b89bX5li6aK492yuPP5mPgRVgIxxBP7ksaBtKX5QQBsrZTpNOjf/MR4CjcUrAw8g+RQuD6kap9lPjFgY4U1/5A==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "bn.js": "^4.4.0" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/bytes": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.9.tgz", - "integrity": "sha512-k+17ZViDtAugC0s7HM6rdsTWEdIYII4RPCDkPEuxKc6i40Bs+m6tjRAtCECX06wKZnrEoR9pjOJRXHJ/VLoOcA==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/constants": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.8.tgz", - "integrity": "sha512-sCc73pFBsl59eDfoQR5OCEZCRv5b0iywadunti6MQIr5lt3XpwxK1Iuzd8XSFO02N9jUifvuZRrt0cY0+NBgTg==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bignumber": "^5.0.13" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/hash": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.10.tgz", - "integrity": "sha512-Tf0bvs6YFhw28LuHnhlDWyr0xfcDxSXdwM4TcskeBbmXVSKLv3bJQEEEBFUcRX0fJuslR3gCVySEaSh7vuMx5w==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.0.10", - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/keccak256": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.7.tgz", - "integrity": "sha512-zpUBmofWvx9PGfc7IICobgFQSgNmTOGTGLUxSYqZzY/T+b4y/2o5eqf/GGmD7qnTGzKQ42YlLNo+LeDP2qe55g==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "js-sha3": "0.5.7" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/logger": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.8.tgz", - "integrity": "sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/@ethersproject/networks": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.7.tgz", - "integrity": "sha512-dI14QATndIcUgcCBL1c5vUr/YsI5cCHLN81rF7PU+yS7Xgp2/Rzbr9+YqpC6NBXHFUASjh6GpKqsVMpufAL0BQ==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/properties": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.7.tgz", - "integrity": "sha512-812H1Rus2vjw0zbasfDI1GLNPDsoyX1pYqiCgaR1BuyKxUTbwcH1B+214l6VGe1v+F6iEVb7WjIwMjKhb4EUsg==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/rlp": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.7.tgz", - "integrity": "sha512-ulUTVEuV7PT4jJTPpfhRHK57tkLEDEY9XSYJtrSNHOqdwMvH0z7BM2AKIMq4LVDlnu4YZASdKrkFGEIO712V9w==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/signing-key": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.8.tgz", - "integrity": "sha512-YKxQM45eDa6WAD+s3QZPdm1uW1MutzVuyoepdRRVmMJ8qkk7iOiIhUkZwqKLNxKzEJijt/82ycuOREc9WBNAKg==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "elliptic": "6.5.3" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/strings": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.8.tgz", - "integrity": "sha512-5IsdXf8tMY8QuHl8vTLnk9ehXDDm6x9FB9S9Og5IA1GYhLe5ZewydXSjlJlsqU2t9HRbfv97OJZV/pX8DVA/Hw==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/logger": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/transactions": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.9.tgz", - "integrity": "sha512-0Fu1yhdFBkrbMjenEr+39tmDxuHmaw0pe9Jb18XuKoItj7Z3p7+UzdHLr2S/okvHDHYPbZE5gtANDdQ3ZL1nBA==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/address": "^5.0.9", - "@ethersproject/bignumber": "^5.0.13", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/constants": "^5.0.8", - "@ethersproject/keccak256": "^5.0.7", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/rlp": "^5.0.7", - "@ethersproject/signing-key": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@ethersproject/web": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.12.tgz", - "integrity": "sha512-gVxS5iW0bgidZ76kr7LsTxj4uzN5XpCLzvZrLp8TP+4YgxHfCeetFyQkRPgBEAJdNrexdSBayvyJvzGvOq0O8g==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/base64": "^5.0.7", - "@ethersproject/bytes": "^5.0.9", - "@ethersproject/logger": "^5.0.8", - "@ethersproject/properties": "^5.0.7", - "@ethersproject/strings": "^5.0.8" - } - }, - "node_modules/ganache-core/node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "optional": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/abstract-leveldown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz", - "integrity": "sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "optional": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/ganache-core/node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.11" - } - }, - "node_modules/ganache-core/node_modules/async-eventemitter": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", - "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", - "dev": true, - "dependencies": { - "async": "^2.4.0" - } - }, - "node_modules/ganache-core/node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/ganache-core/node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/ganache-core/node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/ganache-core/node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/ganache-core/node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/ganache-core/node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ganache-core/node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/babelify": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", - "dev": true, - "dependencies": { - "babel-core": "^6.0.14", - "object-assign": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/ganache-core/node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", - "dev": true, - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/ganache-core/node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ganache-core/node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/ganache-core/node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "node_modules/ganache-core/node_modules/blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true - }, - "node_modules/ganache-core/node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "optional": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/ganache-core/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "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/ganache-core/node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "optional": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "optional": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/ganache-core/node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/ganache-core/node_modules/bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/ganache-core/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/bytewise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", - "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", - "dev": true, - "dependencies": { - "bytewise-core": "^1.2.2", - "typewise": "^1.0.3" - } - }, - "node_modules/ganache-core/node_modules/bytewise-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", - "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", - "dev": true, - "dependencies": { - "typewise-core": "^1.2" - } - }, - "node_modules/ganache-core/node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "optional": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/cachedown": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cachedown/-/cachedown-1.0.0.tgz", - "integrity": "sha1-1D8DbkUQaWsxJG19sx6/D3rDLRU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "^2.4.1", - "lru-cache": "^3.2.0" - } - }, - "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz", - "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/ganache-core/node_modules/caniuse-lite": { - "version": "1.0.30001174", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz", - "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/checkpoint-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", - "dev": true, - "dependencies": { - "functional-red-black-tree": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ganache-core/node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ganache-core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "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/ganache-core/node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/content-disposition/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==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dev": true, - "optional": true, - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/ganache-core/node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/convert-source-map/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/core-js-pure": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.2.tgz", - "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/ganache-core/node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "optional": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "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/ganache-core/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==", - "dev": true, - "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/ganache-core/node_modules/cross-fetch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", - "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==", - "dev": true, - "dependencies": { - "node-fetch": "2.1.2", - "whatwg-fetch": "2.0.4" - } - }, - "node_modules/ganache-core/node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "optional": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/ganache-core/node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/ganache-core/node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/deferred-leveldown": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz", - "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~5.0.0", - "inherits": "^2.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ganache-core/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "optional": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/ganache-core/node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/electron-to-chromium": { - "version": "1.3.636", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz", - "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==", - "dev": true - }, - "node_modules/ganache-core/node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/ganache-core/node_modules/encoding-down": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz", - "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "^5.0.0", - "inherits": "^2.0.3", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/ganache-core/node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/ganache-core/node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/ganache-core/node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/ganache-core/node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz", - "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==", - "dev": true, - "dependencies": { - "eth-query": "^2.1.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.3", - "ethjs-util": "^0.1.3", - "json-rpc-engine": "^3.6.0", - "pify": "^2.3.0", - "tape": "^4.6.3" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "optional": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-infura": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz", - "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==", - "dev": true, - "dependencies": { - "cross-fetch": "^2.1.1", - "eth-json-rpc-middleware": "^1.5.0", - "json-rpc-engine": "^3.4.0", - "json-rpc-error": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", - "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", - "dev": true, - "dependencies": { - "async": "^2.5.0", - "eth-query": "^2.1.2", - "eth-tx-summary": "^3.1.2", - "ethereumjs-block": "^1.6.0", - "ethereumjs-tx": "^1.3.3", - "ethereumjs-util": "^5.1.2", - "ethereumjs-vm": "^2.1.0", - "fetch-ponyfill": "^4.0.0", - "json-rpc-engine": "^3.6.0", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "tape": "^4.6.3" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/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==", - "dev": true, - "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/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", - "dev": true, - "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz", - "integrity": "sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "elliptic": "^6.4.0", - "ethereumjs-abi": "0.6.5", - "ethereumjs-util": "^5.1.1", - "tweetnacl": "^1.0.0", - "tweetnacl-util": "^0.15.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz", - "integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=", - "dev": true, - "dependencies": { - "bn.js": "^4.10.0", - "ethereumjs-util": "^4.3.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz", - "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==", - "dev": true, - "dependencies": { - "bn.js": "^4.8.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", - "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "clone": "^2.0.0", - "concat-stream": "^1.5.1", - "end-of-stream": "^1.1.0", - "eth-query": "^2.0.2", - "ethereumjs-block": "^1.4.1", - "ethereumjs-tx": "^1.1.1", - "ethereumjs-util": "^5.0.1", - "ethereumjs-vm": "^2.6.0", - "through2": "^2.0.3" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/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==", - "dev": true, - "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/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethashjs": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz", - "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "buffer-xor": "^2.0.1", - "ethereumjs-util": "^7.0.2", - "miller-rabin": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", - "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.7.tgz", - "integrity": "sha512-vU5rtZBlZsgkTw3o6PDKyB8li2EgLavnAbsKcfsH2YhHH1Le+PP8vEiMnAnvgc1B6uMoaM5GDCrVztBw0Q5K9g==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereum-bloom-filters": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", - "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "optional": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ganache-core/node_modules/ethereum-bloom-filters/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==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "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/ganache-core/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==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-account": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz", - "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==", - "dev": true, - "dependencies": { - "ethereumjs-util": "^6.0.0", - "rlp": "^2.2.1", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-blockchain": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz", - "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==", - "dev": true, - "dependencies": { - "async": "^2.6.1", - "ethashjs": "~0.0.7", - "ethereumjs-block": "~2.2.2", - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.1.0", - "flow-stoplight": "^1.0.0", - "level-mem": "^3.0.1", - "lru-cache": "^5.1.1", - "rlp": "^2.2.2", - "semaphore": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-common": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "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/ganache-core/node_modules/ethereumjs-vm": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz", - "integrity": "sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "core-js-pure": "^3.0.1", - "ethereumjs-account": "^3.0.0", - "ethereumjs-block": "^2.2.2", - "ethereumjs-blockchain": "^4.0.3", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.2", - "ethereumjs-util": "^6.2.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1", - "util.promisify": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ethereumjs-wallet": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", - "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", - "dev": true, - "optional": true, - "dependencies": { - "aes-js": "^3.1.1", - "bs58check": "^2.1.2", - "ethereum-cryptography": "^0.1.3", - "ethereumjs-util": "^6.0.0", - "randombytes": "^2.0.6", - "safe-buffer": "^5.1.2", - "scryptsy": "^1.2.1", - "utf8": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "node_modules/ganache-core/node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ganache-core/node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "optional": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ganache-core/node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/express/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==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/ext/node_modules/type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/ganache-core/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dev": true, - "dependencies": { - "checkpoint-store": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/ganache-core/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", - "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", - "dev": true, - "dependencies": { - "node-fetch": "~1.7.1" - } - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz", - "integrity": "sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==", - "dev": true, - "dependencies": { - "fs-extra": "^4.0.3", - "micromatch": "^3.1.4" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/flow-stoplight": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", - "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=", - "dev": true - }, - "node_modules/ganache-core/node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/ganache-core/node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/ganache-core/node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/ganache-core/node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/ganache-core/node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/ganache-core/node_modules/get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "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": "*" - } - }, - "node_modules/ganache-core/node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/ganache-core/node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "optional": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/ganache-core/node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "optional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "optional": true, - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=", - "dev": true - }, - "node_modules/ganache-core/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "optional": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/ganache-core/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "optional": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", - "dev": true - }, - "node_modules/ganache-core/node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/ganache-core/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", - "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "node_modules/ganache-core/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": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/ganache-core/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/ganache-core/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "optional": true, - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ganache-core/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/json-rpc-engine": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", - "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "babel-preset-env": "^1.7.0", - "babelify": "^7.3.0", - "json-rpc-error": "^2.0.0", - "promise-to-callback": "^1.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/json-rpc-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", - "integrity": "sha1-p6+cICg4tekFxyUOVH8a/3cligI=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", - "dev": true - }, - "node_modules/ganache-core/node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/ganache-core/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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/ganache-core/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/ganache-core/node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/ganache-core/node_modules/keccak": { - "version": "3.0.1", - "dev": true, - "hasInstallScript": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "optional": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/ganache-core/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/ganache-core/node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-iterator-stream": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz", - "integrity": "sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.5", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/level-mem": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz", - "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==", - "dev": true, - "dependencies": { - "level-packager": "~4.0.0", - "memdown": "~3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-mem/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/level-packager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz", - "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==", - "dev": true, - "dependencies": { - "encoding-down": "~5.0.0", - "levelup": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/level-post": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz", - "integrity": "sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==", - "dev": true, - "dependencies": { - "ltgt": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/level-sublevel": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.4.tgz", - "integrity": "sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==", - "dev": true, - "dependencies": { - "bytewise": "~1.1.0", - "level-codec": "^9.0.0", - "level-errors": "^2.0.0", - "level-iterator-stream": "^2.0.3", - "ltgt": "~2.1.1", - "pull-defer": "^0.2.2", - "pull-level": "^2.0.3", - "pull-stream": "^3.6.8", - "typewiselite": "~1.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/level-ws": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz", - "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.8", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/levelup": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz", - "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~4.0.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~3.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz", - "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/looper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz", - "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/ganache-core/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/ganache-core/node_modules/ltgt": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz", - "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz", - "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==", - "dev": true, - "dependencies": { - "async": "^2.6.1", - "ethereumjs-util": "^5.2.0", - "level-mem": "^3.0.1", - "level-ws": "^1.0.0", - "readable-stream": "^3.0.6", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/ganache-core/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "dependencies": { - "mime-db": "1.45.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ganache-core/node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "optional": true, - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/mock-fs": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", - "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dev": true, - "optional": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/ganache-core/node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "dev": true, - "optional": true, - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dev": true, - "optional": true, - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/ganache-core/node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/ganache-core/node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/node-addon-api": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/ganache-core/node_modules/node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/ganache-core/node_modules/node-gyp-build": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/ganache-core/node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ganache-core/node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "optional": true, - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "optional": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/ganache-core/node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "optional": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "optional": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz", - "integrity": "sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==", - "dev": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^1.2.1", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/ganache-core/node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/ganache-core/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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "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/ganache-core/node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/ganache-core/node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/promise-to-callback": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", - "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", - "dev": true, - "dependencies": { - "is-fn": "^1.0.0", - "set-immediate-shim": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "optional": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ganache-core/node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/ganache-core/node_modules/pull-cat": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", - "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=", - "dev": true - }, - "node_modules/ganache-core/node_modules/pull-defer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz", - "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/pull-level": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz", - "integrity": "sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==", - "dev": true, - "dependencies": { - "level-post": "^1.0.7", - "pull-cat": "^1.1.9", - "pull-live": "^1.0.1", - "pull-pushable": "^2.0.0", - "pull-stream": "^3.4.0", - "pull-window": "^2.1.4", - "stream-to-pull-stream": "^1.7.1" - } - }, - "node_modules/ganache-core/node_modules/pull-live": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", - "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", - "dev": true, - "dependencies": { - "pull-cat": "^1.1.9", - "pull-stream": "^3.4.0" - } - }, - "node_modules/ganache-core/node_modules/pull-pushable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz", - "integrity": "sha1-Xy867UethpGfAbEqLpnW8b13ZYE=", - "dev": true - }, - "node_modules/ganache-core/node_modules/pull-stream": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz", - "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==", - "dev": true - }, - "node_modules/ganache-core/node_modules/pull-window": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", - "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", - "dev": true, - "dependencies": { - "looper": "^2.0.0" - } - }, - "node_modules/ganache-core/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/ganache-core/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "optional": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/ganache-core/node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "optional": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/ganache-core/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "optional": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "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/ganache-core/node_modules/readable-stream/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/ganache-core/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/ganache-core/node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/ganache-core/node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "node_modules/ganache-core/node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/ganache-core/node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ganache-core/node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ganache-core/node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "optional": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "dev": true, - "dependencies": { - "through": "~2.3.4" - } - }, - "node_modules/ganache-core/node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/ganache-core/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ganache-core/node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/ganache-core/node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "dev": true, - "dependencies": { - "events": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/ganache-core/node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/scryptsy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", - "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", - "dev": true, - "optional": true, - "dependencies": { - "pbkdf2": "^3.0.3" - } - }, - "node_modules/ganache-core/node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ganache-core/node_modules/seedrandom": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz", - "integrity": "sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ganache-core/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ganache-core/node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "optional": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ganache-core/node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "optional": true, - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/ganache-core/node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "optional": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ganache-core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-support/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "node_modules/ganache-core/node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/ganache-core/node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/stream-to-pull-stream": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", - "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", - "dev": true, - "dependencies": { - "looper": "^3.0.0", - "pull-stream": "^3.2.3" - } - }, - "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=", - "dev": true - }, - "node_modules/ganache-core/node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ganache-core/node_modules/string_decoder/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/string.prototype.trim": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", - "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/ganache-core/node_modules/string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/ganache-core/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": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ganache-core/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==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dev": true, - "optional": true, - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "optional": true, - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "optional": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tape": { - "version": "4.13.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", - "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", - "dev": true, - "dependencies": { - "deep-equal": "~1.1.1", - "defined": "~1.0.0", - "dotignore": "~0.1.2", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.6", - "has": "~1.0.3", - "inherits": "~2.0.4", - "is-regex": "~1.0.5", - "minimist": "~1.2.5", - "object-inspect": "~1.7.0", - "resolve": "~1.17.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.2.1", - "through": "~2.3.8" - }, - "bin": { - "tape": "bin/tape" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "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": "*" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "node_modules/ganache-core/node_modules/tape/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/ganache-core/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/ganache-core/node_modules/tar/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/ganache-core/node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/ganache-core/node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ganache-core/node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ganache-core/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ganache-core/node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ganache-core/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/ganache-core/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/ganache-core/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "optional": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ganache-core/node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/ganache-core/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/ganache-core/node_modules/typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", - "dev": true, - "dependencies": { - "typewise-core": "^1.2.0" - } - }, - "node_modules/ganache-core/node_modules/typewise-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/typewiselite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz", - "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ganache-core/node_modules/unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/ganache-core/node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "node_modules/ganache-core/node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "optional": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ganache-core/node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ganache-core/node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ganache-core/node_modules/utf-8-validate": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", - "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/ganache-core/node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - } - }, - "node_modules/ganache-core/node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/ganache-core/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/ganache-core/node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ganache-core/node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/ganache-core/node_modules/web3": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", - "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", - "dev": true, - "optional": true, - "dependencies": { - "web3-bzz": "1.2.11", - "web3-core": "1.2.11", - "web3-eth": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-shh": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-bzz": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", - "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40", - "underscore": "1.9.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-core": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", - "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-requestmanager": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-helpers": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", - "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", - "dev": true, - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-method": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", - "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-promievent": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", - "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-requestmanager": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", - "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", - "dev": true, - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "web3-providers-http": "1.2.11", - "web3-providers-ipc": "1.2.11", - "web3-providers-ws": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core-subscriptions": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", - "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-eth": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", - "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", - "dev": true, - "optional": true, - "dependencies": { - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-accounts": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-eth-ens": "1.2.11", - "web3-eth-iban": "1.2.11", - "web3-eth-personal": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-abi": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", - "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", - "dev": true, - "optional": true, - "dependencies": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", - "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", - "dev": true, - "optional": true, - "dependencies": { - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-js": "^3.0.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-contract": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", - "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", - "dev": true, - "optional": true, - "dependencies": { - "@types/bn.js": "^4.11.5", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-ens": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", - "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", - "dev": true, - "optional": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-promievent": "1.2.11", - "web3-eth-abi": "1.2.11", - "web3-eth-contract": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-iban": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", - "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-personal": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", - "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.2.11", - "web3-core-helpers": "1.2.11", - "web3-core-method": "1.2.11", - "web3-net": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz", - "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/web3-net": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", - "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-utils": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz", - "integrity": "sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==", - "dev": true, - "dependencies": { - "async": "^2.5.0", - "backoff": "^2.5.0", - "clone": "^2.0.0", - "cross-fetch": "^2.1.0", - "eth-block-tracker": "^3.0.0", - "eth-json-rpc-infura": "^3.1.0", - "eth-sig-util": "^1.4.2", - "ethereumjs-block": "^1.2.2", - "ethereumjs-tx": "^1.2.0", - "ethereumjs-util": "^5.1.5", - "ethereumjs-vm": "^2.3.4", - "json-rpc-error": "^2.0.0", - "json-stable-stringify": "^1.0.1", - "promise-to-callback": "^1.0.0", - "readable-stream": "^2.2.9", - "request": "^2.85.0", - "semaphore": "^1.0.3", - "ws": "^5.1.1", - "xhr": "^2.2.0", - "xtend": "^4.0.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", - "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.6.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", - "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", - "dev": true, - "dependencies": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", - "ethereumjs-util": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-abi": { - "resolved": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/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==", - "dev": true, - "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/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", - "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", - "dev": true, - "dependencies": { - "ethereumjs-util": "^5.0.0", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", - "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereum-common": "0.2.0", - "ethereumjs-tx": "^1.2.2", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", - "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", - "dev": true, - "dependencies": { - "ethereum-common": "^0.0.18", - "ethereumjs-util": "^5.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", - "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", - "dev": true, - "dependencies": { - "async": "^2.1.2", - "async-eventemitter": "^0.2.2", - "ethereumjs-account": "^2.0.3", - "ethereumjs-block": "~2.2.0", - "ethereumjs-common": "^1.1.0", - "ethereumjs-util": "^6.0.0", - "fake-merkle-patricia-tree": "^1.0.1", - "functional-red-black-tree": "^1.0.1", - "merkle-patricia-tree": "^2.3.2", - "rustbn.js": "~0.2.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", - "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", - "dev": true, - "dependencies": { - "async": "^2.0.1", - "ethereumjs-common": "^1.5.0", - "ethereumjs-tx": "^2.1.1", - "ethereumjs-util": "^5.0.0", - "merkle-patricia-tree": "^2.1.2" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", - "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, - "dependencies": { - "ethereumjs-common": "^1.5.0", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/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==", - "dev": true, - "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/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", - "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", - "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "level-errors": "^1.0.3", - "readable-stream": "^1.0.33", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", - "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.15", - "xtend": "~2.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~1.2.1", - "level-codec": "~7.0.0", - "level-errors": "~1.0.3", - "level-iterator-stream": "~1.3.0", - "prr": "~1.0.1", - "semver": "~5.4.1", - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "dependencies": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "dependencies": { - "xtend": "~4.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", - "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", - "dev": true, - "dependencies": { - "async": "^1.4.2", - "ethereumjs-util": "^5.0.0", - "level-ws": "0.0.0", - "levelup": "^1.2.1", - "memdown": "^1.0.0", - "readable-stream": "^2.0.0", - "rlp": "^2.0.0", - "semaphore": ">=1.0.1" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/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==", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-http": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", - "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core-helpers": "1.2.11", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-ipc": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", - "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", - "dev": true, - "optional": true, - "dependencies": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-providers-ws": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", - "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", - "dev": true, - "optional": true, - "dependencies": { - "eventemitter3": "4.0.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.11", - "websocket": "^1.0.31" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-shh": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", - "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", - "dev": true, - "optional": true, - "dependencies": { - "web3-core": "1.2.11", - "web3-core-method": "1.2.11", - "web3-core-subscriptions": "1.2.11", - "web3-net": "1.2.11" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-utils": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", - "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "optional": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/ganache-core/node_modules/websocket": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz", - "integrity": "sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==", - "dev": true, - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ganache-core/node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ganache-core/node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ganache-core/node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true - }, - "node_modules/ganache-core/node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ganache-core/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "optional": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ganache-core/node_modules/ws/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==", - "dev": true, - "optional": true - }, - "node_modules/ganache-core/node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/ganache-core/node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "optional": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/ganache-core/node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "optional": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/ganache-core/node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dev": true, - "optional": true, - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/ganache-core/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/ganache-core/node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "dev": true, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/ganache-core/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "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": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "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": "*" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hardhat": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.4.3.tgz", - "integrity": "sha512-xgbnhEnmaKau8xT6wPJlzoyMLAZyxQoElACQQCyEeAY1DURpZbYwjIQUywmL/ZNv3QEl38Yqu/n8mPOc2HXyGA==", - "dev": true, - "dependencies": { - "@ethereumjs/block": "^3.4.0", - "@ethereumjs/blockchain": "^5.4.0", - "@ethereumjs/common": "^2.4.0", - "@ethereumjs/tx": "^3.3.0", - "@ethereumjs/vm": "^5.5.0", - "@ethersproject/abi": "^5.1.2", - "@sentry/node": "^5.18.1", - "@solidity-parser/parser": "^0.11.0", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "abort-controller": "^3.0.0", - "adm-zip": "^0.4.16", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "eth-sig-util": "^2.5.2", - "ethereum-cryptography": "^0.1.2", - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^7.1.0", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "^7.1.3", - "https-proxy-agent": "^5.0.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "lodash": "^4.17.11", - "merkle-patricia-tree": "^4.2.0", - "mnemonist": "^0.38.0", - "mocha": "^7.1.2", - "node-fetch": "^2.6.0", - "qs": "^6.7.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "slash": "^3.0.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "true-case-path": "^2.2.1", - "tsort": "0.0.1", - "uuid": "^3.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/cli.js" - }, - "engines": { - "node": ">=8.2.0" - } - }, - "node_modules/hardhat/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/hardhat/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/hardhat/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==", - "dev": true - }, - "node_modules/hardhat/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/hardhat/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==", - "dev": true - }, - "node_modules/hardhat/node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/hardhat/node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hardhat/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/hardhat/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/hardhat/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hardhat/node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/https-proxy-agent/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==", - "dev": true - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.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==", - "dev": true - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "node_modules/immutable": { - "version": "4.0.0-rc.14", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.14.tgz", - "integrity": "sha512-pfkvmRKJSoW7JFx0QeYlAmT+kNYvn5j0u7bnpNq4N2RCvHSTlLT208G8jgaquNe+Q8kCPHKOSpxJkyvLDpYq0w==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "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==", - "dev": true - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "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": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "dev": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/level-codec": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", - "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", - "dev": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-concat-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", - "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", - "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", - "dev": true, - "dependencies": { - "errno": "~0.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-iterator-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", - "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.4.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-mem": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz", - "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==", - "dev": true, - "dependencies": { - "level-packager": "^5.0.3", - "memdown": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-packager": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", - "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", - "dev": true, - "dependencies": { - "encoding-down": "^6.3.0", - "levelup": "^4.3.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-supports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", - "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", - "dev": true, - "dependencies": { - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/level-ws": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz", - "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^3.1.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/levelup": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", - "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", - "dev": true, - "dependencies": { - "deferred-leveldown": "~5.3.0", - "level-errors": "~2.0.0", - "level-iterator-stream": "~4.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/mcl-wasm": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.8.tgz", - "integrity": "sha512-qNHlYO6wuEtSoH5A8TcZfCEHtw8gGPqF6hLZpQn2SVd/Mck0ELIKOkmj072D98S9B9CI/jZybTUC96q1P2/ZDw==", - "dev": true, - "dependencies": { - "typescript": "^4.3.4" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memdown": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", - "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~6.2.1", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/abstract-leveldown": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", - "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "immediate": "^3.2.3", - "level-concat-iterator": "~2.0.0", - "level-supports": "~1.0.0", - "xtend": "~4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memdown/node_modules/immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", - "dev": true - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merkle-patricia-tree": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz", - "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==", - "dev": true, - "dependencies": { - "@types/levelup": "^4.3.0", - "ethereumjs-util": "^7.0.10", - "level-mem": "^5.0.1", - "level-ws": "^2.0.0", - "readable-stream": "^3.6.0", - "rlp": "^2.2.4", - "semaphore-async-await": "^1.5.1" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "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==", - "dev": true - }, - "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mnemonist": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", - "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", - "dev": true, - "dependencies": { - "obliterator": "^1.6.1" - } - }, - "node_modules/mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/mocha/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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "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": "*" - } - }, - "node_modules/mocha/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/mocha/node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mocha/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/mocha/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/mocha/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "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==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/obliterator": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", - "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", - "dev": true - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz", - "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", - "dev": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/patch-package/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "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/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postinstall-postinstall": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz", - "integrity": "sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==", - "dev": true - }, - "node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "dev": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semaphore-async-await": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", - "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=", - "dev": true, - "engines": { - "node": ">=4.1" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/solc": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", - "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", - "dev": true, - "dependencies": { - "fs-extra": "^0.30.0", - "memorystream": "^0.3.1", - "require-from-string": "^1.1.0", - "semver": "^5.3.0", - "yargs": "^4.7.1" - }, - "bin": { - "solcjs": "solcjs" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.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==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/testrpc": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", - "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==", - "dev": true - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.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==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true - }, - "node_modules/ts-essentials": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz", - "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ==", - "dev": true - }, - "node_modules/ts-generator": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.1.1.tgz", - "integrity": "sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ==", - "dev": true, - "dependencies": { - "@types/mkdirp": "^0.5.2", - "@types/prettier": "^2.1.1", - "@types/resolve": "^0.0.8", - "chalk": "^2.4.1", - "glob": "^7.1.2", - "mkdirp": "^0.5.1", - "prettier": "^2.1.2", - "resolve": "^1.8.1", - "ts-essentials": "^1.0.0" - }, - "bin": { - "ts-generator": "dist/cli/run.js" - } - }, - "node_modules/ts-generator/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ts-node": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.1.0.tgz", - "integrity": "sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA==", - "dev": true, - "dependencies": { - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=12.0.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==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/typechain": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.1.1.tgz", - "integrity": "sha512-zN4ylCc3gSw2BXy5Zlpmw8q0lf5pQ+U8gYd5WCWRfDVuUkKyZBURz31VLjkPY/nfOr+P6EcwTC4Ae5VNVqrv/g==", - "dev": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "command-line-args": "^4.0.7", - "debug": "^4.1.1", - "fs-extra": "^7.0.0", - "glob": "^7.1.6", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.1.2", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - } - }, - "node_modules/typechain/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/typechain/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/typechain/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==", - "dev": true - }, - "node_modules/typechain/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/typechain/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==", - "dev": true - }, - "node_modules/typechain/node_modules/ts-essentials": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.2.tgz", - "integrity": "sha512-qWPVC1xZGdefbsgFP7tPo+bsgSA2ZIXL1XeEe5M2WoMZxIOr/HbsHxP/Iv75IFhiMHMDGL7cOOwi5SXcgx9mHw==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "dev": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.4.0.tgz", - "integrity": "sha512-b8mEhwh/J928Xk+SQFjtqrR2EGPhpknWLcIt9aCpVPVRXiqjUGo/kpOHKz0azu9c6/onEJ9tWXZt0cVjmH0N5Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.12.1", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", - "dev": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", - "dev": true, - "dependencies": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "lodash.assign": "^4.0.3", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.1", - "which-module": "^1.0.0", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^2.4.1" - } - }, - "node_modules/yargs-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "lodash.assign": "^4.0.6" - } - }, - "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/yargs-unparser/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/yargs-unparser/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs-unparser/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs-unparser/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", "dev": true }, - "node_modules/yargs-unparser/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-unparser/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "@cspotcode/source-map-support": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", + "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { "@ensdomains/ens": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", @@ -16242,9 +297,9 @@ } }, "@ethereumjs/vm": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.5.0.tgz", - "integrity": "sha512-h6Kr6WqKUP8nVuEzCWPWEPrC63v7HFwt3gRuK7CJiyg9S0iWSBKUA/YVD4YgaSVACuxUfWaOBbwV5uGVupm5PQ==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.5.2.tgz", + "integrity": "sha512-AydZ4wfvZAsBuFzs3xVSA2iU0hxhL8anXco3UW3oh9maVC34kTEytOfjHf06LTEfN0MF9LDQ4ciLa7If6ZN/sg==", "dev": true, "requires": { "@ethereumjs/block": "^3.4.0", @@ -16280,10 +335,9 @@ } }, "@ethersproject/abi": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.0.tgz", - "integrity": "sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw==", - "dev": true, + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.1.tgz", + "integrity": "sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg==", "requires": { "@ethersproject/address": "^5.4.0", "@ethersproject/bignumber": "^5.4.0", @@ -16300,7 +354,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", - "dev": true, "requires": { "@ethersproject/bignumber": "^5.4.0", "@ethersproject/bytes": "^5.4.0", @@ -16315,7 +368,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", - "dev": true, "requires": { "@ethersproject/abstract-provider": "^5.4.0", "@ethersproject/bignumber": "^5.4.0", @@ -16328,7 +380,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", - "dev": true, "requires": { "@ethersproject/bignumber": "^5.4.0", "@ethersproject/bytes": "^5.4.0", @@ -16341,7 +392,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0" } @@ -16350,7 +400,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/properties": "^5.4.0" @@ -16360,7 +409,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/logger": "^5.4.0", @@ -16371,7 +419,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", - "dev": true, "requires": { "@ethersproject/logger": "^5.4.0" } @@ -16380,7 +427,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", - "dev": true, "requires": { "@ethersproject/bignumber": "^5.4.0" } @@ -16389,7 +435,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.4.1.tgz", "integrity": "sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==", - "dev": true, "requires": { "@ethersproject/abi": "^5.4.0", "@ethersproject/abstract-provider": "^5.4.0", @@ -16407,7 +452,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", - "dev": true, "requires": { "@ethersproject/abstract-signer": "^5.4.0", "@ethersproject/address": "^5.4.0", @@ -16423,7 +467,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.4.0.tgz", "integrity": "sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q==", - "dev": true, "requires": { "@ethersproject/abstract-signer": "^5.4.0", "@ethersproject/basex": "^5.4.0", @@ -16443,7 +486,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz", "integrity": "sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ==", - "dev": true, "requires": { "@ethersproject/abstract-signer": "^5.4.0", "@ethersproject/address": "^5.4.0", @@ -16464,23 +506,20 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "js-sha3": "0.5.7" } }, "@ethersproject/logger": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.0.tgz", - "integrity": "sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==", - "dev": true + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz", + "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==" }, "@ethersproject/networks": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", - "dev": true, "requires": { "@ethersproject/logger": "^5.4.0" } @@ -16489,26 +528,23 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz", "integrity": "sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/sha2": "^5.4.0" } }, "@ethersproject/properties": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", - "integrity": "sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==", - "dev": true, + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz", + "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==", "requires": { "@ethersproject/logger": "^5.4.0" } }, "@ethersproject/providers": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.3.tgz", - "integrity": "sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg==", - "dev": true, + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.5.tgz", + "integrity": "sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw==", "requires": { "@ethersproject/abstract-provider": "^5.4.0", "@ethersproject/abstract-signer": "^5.4.0", @@ -16535,7 +571,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/logger": "^5.4.0" @@ -16545,7 +580,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/logger": "^5.4.0" @@ -16555,7 +589,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/logger": "^5.4.0", @@ -16566,7 +599,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/logger": "^5.4.0", @@ -16580,7 +612,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.4.0.tgz", "integrity": "sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ==", - "dev": true, "requires": { "@ethersproject/bignumber": "^5.4.0", "@ethersproject/bytes": "^5.4.0", @@ -16593,7 +624,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/constants": "^5.4.0", @@ -16604,7 +634,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", - "dev": true, "requires": { "@ethersproject/address": "^5.4.0", "@ethersproject/bignumber": "^5.4.0", @@ -16621,7 +650,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.4.0.tgz", "integrity": "sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg==", - "dev": true, "requires": { "@ethersproject/bignumber": "^5.4.0", "@ethersproject/constants": "^5.4.0", @@ -16632,7 +660,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.4.0.tgz", "integrity": "sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ==", - "dev": true, "requires": { "@ethersproject/abstract-provider": "^5.4.0", "@ethersproject/abstract-signer": "^5.4.0", @@ -16655,7 +682,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", - "dev": true, "requires": { "@ethersproject/base64": "^5.4.0", "@ethersproject/bytes": "^5.4.0", @@ -16668,7 +694,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.4.0.tgz", "integrity": "sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA==", - "dev": true, "requires": { "@ethersproject/bytes": "^5.4.0", "@ethersproject/hash": "^5.4.0", @@ -16862,9 +887,9 @@ "dev": true }, "@tsconfig/node16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", - "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, "@typechain/ethers-v5": { @@ -16933,14 +958,14 @@ "dev": true }, "@types/node": { - "version": "15.14.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.7.tgz", - "integrity": "sha512-FA45p37/mLhpebgbPWWCKfOisTjxGK9lwcHlJ6XVLfu3NgfcazOJHdYUZCWPMK8QX4LhNZdmfo6iMz9FqpUbaw==" + "version": "15.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" }, "@types/node-fetch": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.11.tgz", - "integrity": "sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ==", + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", "dev": true, "requires": { "@types/node": "*", @@ -17056,6 +1081,18 @@ "xtend": "~4.0.0" } }, + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true + }, + "acorn-walk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", + "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==", + "dev": true + }, "adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -17065,8 +1102,7 @@ "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" }, "agent-base": { "version": "6.0.2", @@ -17260,8 +1296,7 @@ "bech32": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, "binary-extensions": { "version": "2.2.0", @@ -17284,8 +1319,7 @@ "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==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "brace-expansion": { "version": "1.1.11", @@ -17309,8 +1343,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browser-stdout": { "version": "1.3.1", @@ -17363,9 +1396,9 @@ } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "buffer-to-arraybuffer": { @@ -17548,9 +1581,9 @@ "dev": true }, "core-js-pure": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", - "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==", + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.4.tgz", + "integrity": "sha512-bY1K3/1Jy9D8Jd12eoeVahNXHLfHFb4TXWI8SQ4y8bImR9qDPmGITBAfmcffTkgUvbJn87r8dILOTWW5kZzkgA==", "dev": true }, "core-util-is": { @@ -17740,7 +1773,6 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -17803,9 +1835,9 @@ } }, "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -17814,11 +1846,12 @@ "get-intrinsic": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.3", "is-string": "^1.0.6", - "object-inspect": "^1.10.3", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -18017,12 +2050,11 @@ } }, "ethers": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.4.4.tgz", - "integrity": "sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA==", - "dev": true, + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.4.6.tgz", + "integrity": "sha512-F7LXARyB/Px3AQC6/QKedWZ8eqCkgOLORqL4B/F0Mag/K+qJSFGqsR36EaOZ6fKg3ZonI+pdbhb4A8Knt/43jQ==", "requires": { - "@ethersproject/abi": "5.4.0", + "@ethersproject/abi": "5.4.1", "@ethersproject/abstract-provider": "5.4.1", "@ethersproject/abstract-signer": "5.4.1", "@ethersproject/address": "5.4.0", @@ -18036,11 +2068,11 @@ "@ethersproject/hdnode": "5.4.0", "@ethersproject/json-wallets": "5.4.0", "@ethersproject/keccak256": "5.4.0", - "@ethersproject/logger": "5.4.0", + "@ethersproject/logger": "5.4.1", "@ethersproject/networks": "5.4.2", "@ethersproject/pbkdf2": "5.4.0", - "@ethersproject/properties": "5.4.0", - "@ethersproject/providers": "5.4.3", + "@ethersproject/properties": "5.4.1", + "@ethersproject/providers": "5.4.5", "@ethersproject/random": "5.4.0", "@ethersproject/rlp": "5.4.0", "@ethersproject/sha2": "5.4.0", @@ -18187,9 +2219,9 @@ } }, "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", + "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==", "dev": true }, "for-each": { @@ -18553,6 +2585,12 @@ "@types/node": "*" } }, + "@types/node": { + "version": "14.14.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", + "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", + "dev": true + }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", @@ -23577,15 +7615,6 @@ "verror": "1.10.0" } }, - "keccak": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -24126,7 +8155,8 @@ }, "node-addon-api": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "dev": true }, "node-fetch": { @@ -24137,7 +8167,8 @@ }, "node-gyp-build": { "version": "4.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", "dev": true }, "normalize-url": { @@ -25583,23 +9614,6 @@ "dev": true, "optional": true }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "string.prototype.trim": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", @@ -25631,6 +9645,23 @@ "define-properties": "^1.1.3" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -26572,9 +10603,9 @@ } }, "ethereumjs-abi": { - "version": "git+ssh://git@github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", "dev": true, - "from": "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git", "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -27193,9 +11224,9 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "growl": { @@ -27221,16 +11252,16 @@ } }, "hardhat": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.4.3.tgz", - "integrity": "sha512-xgbnhEnmaKau8xT6wPJlzoyMLAZyxQoElACQQCyEeAY1DURpZbYwjIQUywmL/ZNv3QEl38Yqu/n8mPOc2HXyGA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.6.2.tgz", + "integrity": "sha512-83kCYIrkRq+vrsjOLIv349fbMpL7Vp/ZGpWtu+KLMH3wcAAs+aMsABZJ8W5hb5uo69+06KeF0pCHQ6y8tBAcwA==", "dev": true, "requires": { "@ethereumjs/block": "^3.4.0", "@ethereumjs/blockchain": "^5.4.0", "@ethereumjs/common": "^2.4.0", "@ethereumjs/tx": "^3.3.0", - "@ethereumjs/vm": "^5.5.0", + "@ethereumjs/vm": "^5.5.2", "@ethersproject/abi": "^5.1.2", "@sentry/node": "^5.18.1", "@solidity-parser/parser": "^0.11.0", @@ -27437,6 +11468,15 @@ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -27452,7 +11492,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -27468,7 +11507,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -27581,8 +11619,18 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } }, "invert-kv": { "version": "1.0.0", @@ -27606,10 +11654,13 @@ "dev": true }, "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } }, "is-binary-path": { "version": "2.1.0", @@ -27621,12 +11672,13 @@ } }, "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-buffer": { @@ -27636,9 +11688,9 @@ "dev": true }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-ci": { @@ -27651,19 +11703,22 @@ } }, "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-docker": { "version": "2.2.1", @@ -27720,26 +11775,32 @@ "dev": true }, "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "has-tostringtag": "^1.0.0" } }, "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { "version": "1.0.4", @@ -27792,8 +11853,7 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" }, "js-yaml": { "version": "3.13.1", @@ -28027,12 +12087,6 @@ "chalk": "^2.4.2" } }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", - "dev": true - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -28042,6 +12096,12 @@ "yallist": "^3.0.2" } }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=", + "dev": true + }, "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", @@ -28116,13 +12176,13 @@ "dev": true }, "merkle-patricia-tree": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz", - "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.1.tgz", + "integrity": "sha512-25reMgrT8PhJy0Ba0U7fMZD2oobS1FPWB9vQa0uBpJYIQYYuFXEHoqEkTqA/UzX+s9br3pmUVVY/TOsFt/x0oQ==", "dev": true, "requires": { "@types/levelup": "^4.3.0", - "ethereumjs-util": "^7.0.10", + "ethereumjs-util": "^7.1.0", "level-mem": "^5.0.1", "level-ws": "^2.0.0", "readable-stream": "^3.6.0", @@ -28151,18 +12211,18 @@ } }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", "dev": true }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dev": true, "requires": { - "mime-db": "1.48.0" + "mime-db": "1.49.0" } }, "mimic-response": { @@ -28183,14 +12243,12 @@ "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==", - "dev": true + "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", @@ -28708,9 +12766,9 @@ "dev": true }, "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", + "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", "dev": true }, "parse-json": { @@ -29093,8 +13151,7 @@ "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, "secp256k1": { "version": "4.0.2", @@ -29252,9 +13309,9 @@ } }, "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "sprintf-js": { @@ -29309,15 +13366,6 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -29349,6 +13397,15 @@ "define-properties": "^1.1.3" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -29507,20 +13564,22 @@ } }, "ts-node": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.1.0.tgz", - "integrity": "sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", + "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", "dev": true, "requires": { + "@cspotcode/source-map-support": "0.6.1", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", + "@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", - "source-map-support": "^0.5.17", "yn": "3.1.1" }, "dependencies": { @@ -29578,9 +13637,9 @@ "dev": true }, "typechain": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.1.1.tgz", - "integrity": "sha512-zN4ylCc3gSw2BXy5Zlpmw8q0lf5pQ+U8gYd5WCWRfDVuUkKyZBURz31VLjkPY/nfOr+P6EcwTC4Ae5VNVqrv/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.1.2.tgz", + "integrity": "sha512-FuaCxJd7BD3ZAjVJoO+D6TnqKey3pQdsqOBsC83RKYWKli5BDhdf0TPkwfyjt20TUlZvOzJifz+lDwXsRkiSKA==", "dev": true, "requires": { "@types/prettier": "^2.1.1", @@ -29637,17 +13696,17 @@ "dev": true }, "ts-essentials": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.2.tgz", - "integrity": "sha512-qWPVC1xZGdefbsgFP7tPo+bsgSA2ZIXL1XeEe5M2WoMZxIOr/HbsHxP/Iv75IFhiMHMDGL7cOOwi5SXcgx9mHw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true } } }, "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", + "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", "dev": true }, "typical": { @@ -29668,12 +13727,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "dev": true - }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -29772,9 +13825,9 @@ } }, "web3-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.4.0.tgz", - "integrity": "sha512-b8mEhwh/J928Xk+SQFjtqrR2EGPhpknWLcIt9aCpVPVRXiqjUGo/kpOHKz0azu9c6/onEJ9tWXZt0cVjmH0N5Q==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.2.tgz", + "integrity": "sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q==", "dev": true, "requires": { "bn.js": "^4.11.9", @@ -29783,7 +13836,6 @@ "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", - "underscore": "1.12.1", "utf8": "3.0.0" } }, @@ -29849,8 +13901,7 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" }, "xhr": { "version": "2.6.0", diff --git a/typescript/optics-tests/test/cross-chain/governanceRouter.test.ts b/typescript/optics-tests/test/cross-chain/governanceRouter.test.ts index 90032b2f6..17698cfd6 100644 --- a/typescript/optics-tests/test/cross-chain/governanceRouter.test.ts +++ b/typescript/optics-tests/test/cross-chain/governanceRouter.test.ts @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { providers } from 'ethers'; import { - enqueueUpdateToReplica, + updateReplica, formatCall, formatOpticsMessage, } from './utils'; @@ -113,29 +113,29 @@ describe('GovernanceRouter', async () => { implementation2.address, ]); - const currentRoot = await governorHome.current(); + const committedRoot = await governorHome.committedRoot(); // dispatch call on local governorRouter let tx = await governorRouter.callRemote(nonGovernorDomain, [call]); let receipt = await tx.wait(0); - let leaf = receipt.events?.[0].topics[3]; + let leaf = receipt.events?.[0].topics[1]; expect(leaf).to.equal(helpers.proof.leaf); const [, latestRoot] = await governorHome.suggestUpdate(); expect(latestRoot).to.equal(helpers.root); - const { signature } = await updater.signUpdate(currentRoot, latestRoot); + const { signature } = await updater.signUpdate(committedRoot, latestRoot); - await expect(governorHome.update(currentRoot, latestRoot, signature)) + await expect(governorHome.update(committedRoot, latestRoot, signature)) .to.emit(governorHome, 'Update') - .withArgs(governorDomain, currentRoot, latestRoot, signature); + .withArgs(governorDomain, committedRoot, latestRoot, signature); - expect(await governorHome.current()).to.equal(latestRoot); + expect(await governorHome.committedRoot()).to.equal(latestRoot); expect(await governorHome.queueContains(latestRoot)).to.be.false; - await enqueueUpdateToReplica( - { oldRoot: currentRoot, newRoot: latestRoot, signature }, + await updateReplica( + { oldRoot: committedRoot, newRoot: latestRoot, signature }, governorReplicaOnNonGovernorChain, ); @@ -154,18 +154,18 @@ describe('GovernanceRouter', async () => { await governorReplicaOnNonGovernorChain.confirm(); - // after confirming, current root should be equal to the last submitted update - expect(await governorReplicaOnNonGovernorChain.current()).to.equal( + // after confirming, committedRoot should be equal to the last submitted update + expect(await governorReplicaOnNonGovernorChain.committedRoot()).to.equal( latestRoot, ); const callMessage = optics.governance.formatCalls([call]); - const sequence = await governorHome.sequences(nonGovernorDomain); + const nonce = await governorHome.nonces(nonGovernorDomain); const opticsMessage = optics.formatMessage( governorDomain, governorRouter.address, - sequence - 1, + nonce - 1, nonGovernorDomain, nonGovernorRouter.address, callMessage, @@ -331,7 +331,7 @@ describe('GovernanceRouter', async () => { it('Transfers governorship', async () => { // Transfer governor on current governor chain // get root on governor chain before transferring governor - const currentRoot = await governorHome.current(); + const committedRoot = await governorHome.committedRoot(); // Governor HAS NOT been transferred on original governor domain await expectGovernor(governorRouter, governorDomain, firstGovernor); @@ -361,10 +361,10 @@ describe('GovernanceRouter', async () => { // get new root and signed update const newRoot = await governorHome.queueEnd(); - const { signature } = await updater.signUpdate(currentRoot, newRoot); + const { signature } = await updater.signUpdate(committedRoot, newRoot); // update governor chain home - await governorHome.update(currentRoot, newRoot, signature); + await governorHome.update(committedRoot, newRoot, signature); const transferGovernorMessage = optics.governance.formatTransferGovernor( nonGovernorDomain, @@ -379,7 +379,7 @@ describe('GovernanceRouter', async () => { ); // Set current root on replica - await governorReplicaOnNonGovernorChain.setCurrentRoot(newRoot); + await governorReplicaOnNonGovernorChain.setCommittedRoot(newRoot); // Governor HAS been transferred on original governor domain await expectGovernor( diff --git a/typescript/optics-tests/test/cross-chain/simpleMessage.test.ts b/typescript/optics-tests/test/cross-chain/simpleMessage.test.ts index dd4e1c788..3433b477d 100644 --- a/typescript/optics-tests/test/cross-chain/simpleMessage.test.ts +++ b/typescript/optics-tests/test/cross-chain/simpleMessage.test.ts @@ -21,7 +21,7 @@ const remoteDomain = domains[1]; /* * Deploy the full Optics suite on two chains - * enqueue messages to Home + * dispatch messages to Home * sign and submit updates to Home * relay updates to Replica * confirm updates on Replica @@ -33,7 +33,7 @@ describe('SimpleCrossChainMessage', async () => { let deploys: Deploy[] = []; let randomSigner: Signer, - firstRootEnqueuedToReplica: string, + firstRootSubmittedToReplica: string, updater: Updater, latestRoot: string, latestUpdate: Update; @@ -57,8 +57,8 @@ describe('SimpleCrossChainMessage', async () => { let length = await governorHome.queueLength(); expect(length).to.equal(1); - let [suggestedCurrent, suggestedNew] = await governorHome.suggestUpdate(); - expect(suggestedCurrent).to.equal(nullRoot); + let [suggestedCommitted, suggestedNew] = await governorHome.suggestUpdate(); + expect(suggestedCommitted).to.equal(nullRoot); expect(suggestedNew).to.not.equal(nullRoot); // nonGovernorHome has 2 updates @@ -67,8 +67,8 @@ describe('SimpleCrossChainMessage', async () => { length = await nonGovernorHome.queueLength(); expect(length).to.equal(2); - [suggestedCurrent, suggestedNew] = await nonGovernorHome.suggestUpdate(); - expect(suggestedCurrent).to.equal(nullRoot); + [suggestedCommitted, suggestedNew] = await nonGovernorHome.suggestUpdate(); + expect(suggestedCommitted).to.equal(nullRoot); expect(suggestedNew).to.not.equal(nullRoot); }); @@ -82,7 +82,7 @@ describe('SimpleCrossChainMessage', async () => { expect(length).to.equal(0); const [pending, confirmAt] = await replica.nextPending(); - expect(pending).to.equal(await replica.current()); + expect(pending).to.equal(await replica.committedRoot()); expect(confirmAt).to.equal(1); } } @@ -92,7 +92,7 @@ describe('SimpleCrossChainMessage', async () => { const messages = ['message'].map((message) => utils.formatMessage(message, remoteDomain, randomSigner.address), ); - const update = await utils.enqueueMessagesAndUpdateHome( + const update = await utils.dispatchMessagesAndUpdateHome( deploys[0].contracts.home?.proxy!, messages, updater, @@ -103,7 +103,7 @@ describe('SimpleCrossChainMessage', async () => { }); it('Destination Replica Accepts the first update', async () => { - firstRootEnqueuedToReplica = await utils.enqueueUpdateToReplica( + firstRootSubmittedToReplica = await utils.updateReplica( latestUpdate, deploys[1].contracts.replicas[localDomain].proxy!, ); @@ -113,7 +113,7 @@ describe('SimpleCrossChainMessage', async () => { const messages = ['message1', 'message2', 'message3'].map((message) => utils.formatMessage(message, remoteDomain, randomSigner.address), ); - const update = await utils.enqueueMessagesAndUpdateHome( + const update = await utils.dispatchMessagesAndUpdateHome( deploys[0].contracts.home?.proxy!, messages, updater, @@ -124,7 +124,7 @@ describe('SimpleCrossChainMessage', async () => { }); it('Destination Replica Accepts the second update', async () => { - await utils.enqueueUpdateToReplica( + await utils.updateReplica( latestUpdate, deploys[1].contracts.replicas[localDomain].proxy, ); @@ -133,7 +133,7 @@ describe('SimpleCrossChainMessage', async () => { it('Destination Replica shows first update as the next pending', async () => { const replica = deploys[1].contracts.replicas[localDomain].proxy; const [pending] = await replica.nextPending(); - expect(pending).to.equal(firstRootEnqueuedToReplica); + expect(pending).to.equal(firstRootSubmittedToReplica); }); it('Destination Replica Batch-confirms several ready updates', async () => { @@ -150,7 +150,7 @@ describe('SimpleCrossChainMessage', async () => { // after confirming, current root should be equal to the last submitted update const { newRoot } = latestUpdate; - expect(await replica.current()).to.equal(newRoot); + expect(await replica.committedRoot()).to.equal(newRoot); }); it('Proves and processes a message on Replica', async () => { @@ -173,11 +173,11 @@ describe('SimpleCrossChainMessage', async () => { // Create Optics message that is sent from the governor domain and governor // to the nonGovernorRouter on the nonGovernorDomain - const sequence = 0; + const nonce = 0; const opticsMessage = optics.formatMessage( 1000, governorRouter.address, - sequence, + nonce, 2000, nonGovernorRouter.address, callMessage, @@ -185,21 +185,21 @@ describe('SimpleCrossChainMessage', async () => { // get merkle proof const { path, index } = proveAndProcessTestCases[0]; - const leaf = optics.messageToLeaf(opticsMessage); + const messageHash = optics.messageHash(opticsMessage); // set root const proofRoot = await replica.testBranchRoot( - leaf, + messageHash, path as BytesArray, index, ); - await replica.setCurrentRoot(proofRoot); + await replica.setCommittedRoot(proofRoot); // prove and process message await replica.proveAndProcess(opticsMessage, path as BytesArray, index); // expect call to have been processed expect(await TestRecipient.processed()).to.be.true; - expect(await replica.messages(leaf)).to.equal(MessageStatus.PROCESSED); + expect(await replica.messages(messageHash)).to.equal(MessageStatus.PROCESSED); }); }); diff --git a/typescript/optics-tests/test/cross-chain/utils.ts b/typescript/optics-tests/test/cross-chain/utils.ts index 0c3291ddb..d0a31bf76 100644 --- a/typescript/optics-tests/test/cross-chain/utils.ts +++ b/typescript/optics-tests/test/cross-chain/utils.ts @@ -18,11 +18,11 @@ type MessageDetails = { }; /* - * Enqueue a message to the specified Home contract + * Dispatch a message from the specified Home contract * and return the updated root * * @param chainDetails - ChainDetails type containing every deployed domain - * @param homeDomain - domain of the Home contract to which we will enqueue the message + * @param homeDomain - domain of the Home contract * @param messageDetails - Message type containing * the message string, * the destination domain to which the message will be sent, @@ -30,14 +30,14 @@ type MessageDetails = { * * @return newRoot - bytes32 of the latest root */ -export async function enqueueMessageToHome( +export async function dispatchMessage( home: Home, messageDetails: MessageDetails, ): Promise { const { message, destinationDomain, recipientAddress } = messageDetails; // Send message with random signer address as msg.sender - await home.enqueue( + await home.dispatch( destinationDomain, optics.ethersAddressToBytes32(recipientAddress), ethers.utils.formatBytes32String(message), @@ -49,40 +49,40 @@ export async function enqueueMessageToHome( } /* - * Enqueue a set of messages to the specified Home contract, + * Dispatch a set of messages to the specified Home contract, * then sign and submit an update to the Home contract * * @param chainDetails - ChainDetails type containing every deployed domain - * @param homeDomain - domain of the Home contract to which we will enqueue all of messages / submit the update + * @param homeDomain - domain of the Home contract * @param messages - Message[] * * @return update - Update type */ -export async function enqueueMessagesAndUpdateHome( +export async function dispatchMessagesAndUpdateHome( home: Home, messages: MessageDetails[], updater: Updater, ): Promise { const homeDomain = await home.localDomain(); - const oldRoot = await home.current(); + const oldRoot = await home.committedRoot(); - // enqueue each message to Home and get the intermediate root - const enqueuedRoots = []; + // dispatch each message from Home and get the intermediate root + const roots = []; for (let message of messages) { - const newRoot = await enqueueMessageToHome(home, message); + const newRoot = await dispatchMessage(home, message); - enqueuedRoots.push(newRoot); + roots.push(newRoot); } // ensure that Home queue contains // all of the roots we just enqueued - for (let root of enqueuedRoots) { + for (let root of roots) { expect(await home.queueContains(root)).to.be.true; } // sign & submit an update from oldRoot to newRoot - const newRoot = enqueuedRoots[enqueuedRoots.length - 1]; + const newRoot = roots[roots.length - 1]; const { signature } = await updater.signUpdate(oldRoot, newRoot); @@ -91,12 +91,12 @@ export async function enqueueMessagesAndUpdateHome( .withArgs(homeDomain, oldRoot, newRoot, signature); // ensure that Home root is now newRoot - expect(await home.current()).to.equal(newRoot); + expect(await home.committedRoot()).to.equal(newRoot); // ensure that Home queue no longer contains // any of the roots we just enqueued - // they should be removed from queue when update is submitted - for (let root of enqueuedRoots) { + for (let root of roots) { expect(await home.queueContains(root)).to.be.false; } @@ -108,16 +108,16 @@ export async function enqueueMessagesAndUpdateHome( } /* - * Enqueue a signed update to the Replica contract + * Submit a signed update to the Replica contract * * @param chainDetails - ChainDetails type containing every deployed domain * @param latestUpdateOnOriginChain - Update type, the last Update submitted to the Home chain for this Replica * @param homeDomain - domain of the Home contract from which the update originated * @param replicaDomain - domain of the Replica contract where the update will be submitted * - * @return finalRoot - updated state root enqueued to the Replica + * @return finalRoot - updated state root submitted to the Replica */ -export async function enqueueUpdateToReplica( +export async function updateReplica( latestUpdateOnOriginChain: Update, replica: Replica, ): Promise { @@ -160,7 +160,7 @@ export async function formatOpticsMessage( destinationRouter: TestGovernanceRouter, message: string, ): Promise { - const sequence = 0; + const nonce = 0; const governorDomain = await governorRouter.localDomain(); const destinationDomain = await destinationRouter.localDomain(); @@ -169,7 +169,7 @@ export async function formatOpticsMessage( const opticsMessage = optics.formatMessage( governorDomain, governorRouter.address, - sequence, + nonce, destinationDomain, destinationRouter.address, message, diff --git a/typescript/optics-tests/test/home.test.ts b/typescript/optics-tests/test/home.test.ts index a1b0866f5..0ad41d995 100644 --- a/typescript/optics-tests/test/home.test.ts +++ b/typescript/optics-tests/test/home.test.ts @@ -13,7 +13,7 @@ import { } from '../../typechain/optics-core'; import homeDomainHashTestCases from '../../../vectors/homeDomainHash.json'; -import destinationSequenceTestCases from '../../../vectors/destinationSequence.json'; +import destinationNonceTestCases from '../../../vectors/destinationNonce.json'; const localDomain = 1000; const destDomain = 2000; @@ -29,11 +29,11 @@ describe('Home', async () => { fakeUpdater: Updater, fakeUpdaterManager: UpdaterManager; - // Helper function that enqueues message and returns its root. - // The message recipient is the same for all messages enqueued. - const enqueueMessageAndGetRoot = async (message: string) => { + // Helper function that dispatches message and returns intermediate root. + // The message recipient is the same for all messages dispatched. + const dispatchMessageAndGetRoot = async (message: string) => { message = ethers.utils.formatBytes32String(message); - await home.enqueue( + await home.dispatch( destDomain, optics.ethersAddressToBytes32(recipient.address), message, @@ -82,7 +82,7 @@ describe('Home', async () => { const message = ethers.utils.formatBytes32String('message'); await expect( - home.enqueue( + home.dispatch( destDomain, optics.ethersAddressToBytes32(recipient.address), message, @@ -110,12 +110,12 @@ describe('Home', async () => { } }); - it('Does not enqueue large messages', async () => { + it('Does not dispatch too large messages', async () => { const message = `0x${Buffer.alloc(3000).toString('hex')}`; await expect( home .connect(signer) - .enqueue( + .dispatch( destDomain, optics.ethersAddressToBytes32(recipient.address), message, @@ -123,33 +123,33 @@ describe('Home', async () => { ).to.be.revertedWith('msg too long'); }); - it('Enqueues a message', async () => { + it('Dispatches a message', async () => { const message = ethers.utils.formatBytes32String('message'); - const sequence = await home.sequences(localDomain); + const nonce = await home.nonces(localDomain); // Format data that will be emitted from Dispatch event - const destinationAndSequence = optics.destinationAndSequence( + const destinationAndNonce = optics.destinationAndNonce( destDomain, - sequence, + nonce, ); const opticsMessage = optics.formatMessage( localDomain, signer.address, - sequence, + nonce, destDomain, recipient.address, message, ); - const leaf = optics.messageToLeaf(opticsMessage); + const messageHash = optics.messageHash(opticsMessage); const leafIndex = await home.nextLeafIndex(); - const current = await home.current(); + const committedRoot = await home.committedRoot(); // Send message with signer address as msg.sender await expect( home .connect(signer) - .enqueue( + .dispatch( destDomain, optics.ethersAddressToBytes32(recipient.address), message, @@ -157,25 +157,25 @@ describe('Home', async () => { ) .to.emit(home, 'Dispatch') .withArgs( + messageHash, leafIndex, - destinationAndSequence, - leaf, - current, + destinationAndNonce, + committedRoot, opticsMessage, ); }); it('Suggests current root and latest root on suggestUpdate', async () => { - const currentRoot = await home.current(); + const committedRoot = await home.committedRoot(); const message = ethers.utils.formatBytes32String('message'); - await home.enqueue( + await home.dispatch( destDomain, optics.ethersAddressToBytes32(recipient.address), message, ); const latestEnqueuedRoot = await home.queueEnd(); - const [suggestedCurrent, suggestedNew] = await home.suggestUpdate(); - expect(suggestedCurrent).to.equal(currentRoot); + const [suggestedCommitted, suggestedNew] = await home.suggestUpdate(); + expect(suggestedCommitted).to.equal(committedRoot); expect(suggestedNew).to.equal(latestEnqueuedRoot); }); @@ -183,43 +183,43 @@ describe('Home', async () => { const length = await home.queueLength(); expect(length).to.equal(0); - const [suggestedCurrent, suggestedNew] = await home.suggestUpdate(); - expect(suggestedCurrent).to.equal(emptyAddress); + const [suggestedCommitted, suggestedNew] = await home.suggestUpdate(); + expect(suggestedCommitted).to.equal(emptyAddress); expect(suggestedNew).to.equal(emptyAddress); }); it('Accepts a valid update', async () => { - const currentRoot = await home.current(); - const newRoot = await enqueueMessageAndGetRoot('message'); - const { signature } = await updater.signUpdate(currentRoot, newRoot); + const committedRoot = await home.committedRoot(); + const newRoot = await dispatchMessageAndGetRoot('message'); + const { signature } = await updater.signUpdate(committedRoot, newRoot); - await expect(home.update(currentRoot, newRoot, signature)) + await expect(home.update(committedRoot, newRoot, signature)) .to.emit(home, 'Update') - .withArgs(localDomain, currentRoot, newRoot, signature); - expect(await home.current()).to.equal(newRoot); + .withArgs(localDomain, committedRoot, newRoot, signature); + expect(await home.committedRoot()).to.equal(newRoot); expect(await home.queueContains(newRoot)).to.be.false; }); it('Batch-accepts several updates', async () => { - const currentRoot = await home.current(); - const newRoot1 = await enqueueMessageAndGetRoot('message1'); - const newRoot2 = await enqueueMessageAndGetRoot('message2'); - const newRoot3 = await enqueueMessageAndGetRoot('message3'); - const { signature } = await updater.signUpdate(currentRoot, newRoot3); + const committedRoot = await home.committedRoot(); + const newRoot1 = await dispatchMessageAndGetRoot('message1'); + const newRoot2 = await dispatchMessageAndGetRoot('message2'); + const newRoot3 = await dispatchMessageAndGetRoot('message3'); + const { signature } = await updater.signUpdate(committedRoot, newRoot3); - await expect(home.update(currentRoot, newRoot3, signature)) + await expect(home.update(committedRoot, newRoot3, signature)) .to.emit(home, 'Update') - .withArgs(localDomain, currentRoot, newRoot3, signature); - expect(await home.current()).to.equal(newRoot3); + .withArgs(localDomain, committedRoot, newRoot3, signature); + expect(await home.committedRoot()).to.equal(newRoot3); expect(await home.queueContains(newRoot1)).to.be.false; expect(await home.queueContains(newRoot2)).to.be.false; expect(await home.queueContains(newRoot3)).to.be.false; }); it('Rejects update that does not build off of current root', async () => { - // First root is current root - const secondRoot = await enqueueMessageAndGetRoot('message'); - const thirdRoot = await enqueueMessageAndGetRoot('message2'); + // First root is committedRoot + const secondRoot = await dispatchMessageAndGetRoot('message'); + const thirdRoot = await dispatchMessageAndGetRoot('message2'); // Try to submit update that skips the current (first) root const { signature } = await updater.signUpdate(secondRoot, thirdRoot); @@ -229,11 +229,11 @@ describe('Home', async () => { }); it('Rejects update that does not exist in queue', async () => { - const currentRoot = await home.current(); + const committedRoot = await home.committedRoot(); const fakeNewRoot = ethers.utils.formatBytes32String('fake root'); - const { signature } = await updater.signUpdate(currentRoot, fakeNewRoot); + const { signature } = await updater.signUpdate(committedRoot, fakeNewRoot); - await expect(home.update(currentRoot, fakeNewRoot, signature)).to.emit( + await expect(home.update(committedRoot, fakeNewRoot, signature)).to.emit( home, 'ImproperUpdate', ); @@ -241,21 +241,21 @@ describe('Home', async () => { }); it('Rejects update from non-updater address', async () => { - const currentRoot = await home.current(); - const newRoot = await enqueueMessageAndGetRoot('message'); + const committedRoot = await home.committedRoot(); + const newRoot = await dispatchMessageAndGetRoot('message'); const { signature: fakeSignature } = await fakeUpdater.signUpdate( - currentRoot, + committedRoot, newRoot, ); await expect( - home.update(currentRoot, newRoot, fakeSignature), + home.update(committedRoot, newRoot, fakeSignature), ).to.be.revertedWith('!updater sig'); }); it('Fails on valid double update proof', async () => { - const firstRoot = await home.current(); - const secondRoot = await enqueueMessageAndGetRoot('message'); - const thirdRoot = await enqueueMessageAndGetRoot('message2'); + const firstRoot = await home.committedRoot(); + const secondRoot = await dispatchMessageAndGetRoot('message'); + const thirdRoot = await dispatchMessageAndGetRoot('message2'); const { signature } = await updater.signUpdate(firstRoot, secondRoot); const { signature: signature2 } = await updater.signUpdate( firstRoot, @@ -272,13 +272,13 @@ describe('Home', async () => { expect(await home.state()).to.equal(OpticsState.FAILED); }); - it('Correctly calculates destinationAndSequence', async () => { - for (let testCase of destinationSequenceTestCases) { - let { destination, sequence, expectedDestinationAndSequence } = testCase; - const solidityDestinationAndSequence = - await home.testDestinationAndSequence(destination, sequence); - expect(solidityDestinationAndSequence).to.equal( - expectedDestinationAndSequence, + it('Correctly calculates destinationAndNonce', async () => { + for (let testCase of destinationNonceTestCases) { + let { destination, nonce, expectedDestinationAndNonce } = testCase; + const solidityDestinationAndNonce = + await home.testDestinationAndNonce(destination, nonce); + expect(solidityDestinationAndNonce).to.equal( + expectedDestinationAndNonce, ); } }); diff --git a/typescript/optics-tests/test/message.test.ts b/typescript/optics-tests/test/message.test.ts index 200bc5862..702f5fa2e 100644 --- a/typescript/optics-tests/test/message.test.ts +++ b/typescript/optics-tests/test/message.test.ts @@ -19,13 +19,13 @@ describe('Message', async () => { it('Returns fields from a message', async () => { const [sender, recipient] = await ethers.getSigners(); - const sequence = 1; + const nonce = 1; const body = ethers.utils.formatBytes32String('message'); const message = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, recipient.address, body, @@ -35,7 +35,7 @@ describe('Message', async () => { expect(await messageLib.sender(message)).to.equal( optics.ethersAddressToBytes32(sender.address), ); - expect(await messageLib.sequence(message)).to.equal(sequence); + expect(await messageLib.nonce(message)).to.equal(nonce); expect(await messageLib.destination(message)).to.equal(localDomain); expect(await messageLib.recipient(message)).to.equal( optics.ethersAddressToBytes32(recipient.address), @@ -49,7 +49,7 @@ describe('Message', async () => { it('Matches Rust-output OpticsMessage and leaf', async () => { const origin = 1000; const sender = '0x1111111111111111111111111111111111111111'; - const sequence = 1; + const nonce = 1; const destination = 2000; const recipient = '0x2222222222222222222222222222222222222222'; const body = ethers.utils.arrayify('0x1234'); @@ -57,7 +57,7 @@ describe('Message', async () => { const opticsMessage = optics.formatMessage( origin, sender, - sequence, + nonce, destination, recipient, body, @@ -66,16 +66,16 @@ describe('Message', async () => { const { origin: testOrigin, sender: testSender, - sequence: testSequence, + nonce: testNonce, destination: testDestination, recipient: testRecipient, body: testBody, - leaf, + messageHash, } = testCases[0]; expect(await messageLib.origin(opticsMessage)).to.equal(testOrigin); expect(await messageLib.sender(opticsMessage)).to.equal(testSender); - expect(await messageLib.sequence(opticsMessage)).to.equal(testSequence); + expect(await messageLib.nonce(opticsMessage)).to.equal(testNonce); expect(await messageLib.destination(opticsMessage)).to.equal( testDestination, ); @@ -83,7 +83,7 @@ describe('Message', async () => { expect(await messageLib.body(opticsMessage)).to.equal( ethers.utils.hexlify(testBody), ); - expect(await messageLib.leaf(opticsMessage)).to.equal(leaf); - expect(optics.messageToLeaf(opticsMessage)).to.equal(leaf); + expect(await messageLib.leaf(opticsMessage)).to.equal(messageHash); + expect(optics.messageHash(opticsMessage)).to.equal(messageHash); }); }); diff --git a/typescript/optics-tests/test/replica.test.ts b/typescript/optics-tests/test/replica.test.ts index fb0a62b04..03f060f62 100644 --- a/typescript/optics-tests/test/replica.test.ts +++ b/typescript/optics-tests/test/replica.test.ts @@ -39,10 +39,10 @@ describe('Replica', async () => { updater: Updater, fakeUpdater: Updater; - const enqueueValidUpdate = async (newRoot: string) => { + const submitValidUpdate = async (newRoot: string) => { let oldRoot; if ((await replica.queueLength()).isZero()) { - oldRoot = await replica.current(); + oldRoot = await replica.committedRoot(); } else { oldRoot = await replica.queueEnd(); } @@ -91,7 +91,7 @@ describe('Replica', async () => { expect(await replica.state()).to.equal(OpticsState.FAILED); const newRoot = ethers.utils.formatBytes32String('new root'); - await expect(enqueueValidUpdate(newRoot)).to.be.revertedWith( + await expect(submitValidUpdate(newRoot)).to.be.revertedWith( 'failed state', ); }); @@ -120,21 +120,21 @@ describe('Replica', async () => { it('Enqueues pending updates', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); expect(await replica.queueEnd()).to.equal(firstNewRoot); const secondNewRoot = ethers.utils.formatBytes32String('second next root'); - await enqueueValidUpdate(secondNewRoot); + await submitValidUpdate(secondNewRoot); expect(await replica.queueEnd()).to.equal(secondNewRoot); }); it('Returns the earliest pending update', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); const beforeTimestamp = await replica.timestamp(); const secondNewRoot = ethers.utils.formatBytes32String('second next root'); - await enqueueValidUpdate(secondNewRoot); + await submitValidUpdate(secondNewRoot); const [pending, confirmAt] = await replica.nextPending(); expect(pending).to.equal(firstNewRoot); @@ -143,13 +143,13 @@ describe('Replica', async () => { it('Returns the current value when the queue is empty', async () => { const [pending, confirmAt] = await replica.nextPending(); - expect(pending).to.equal(await replica.current()); + expect(pending).to.equal(await replica.committedRoot()); expect(confirmAt).to.equal(1); }); it('Rejects update with invalid signature', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); const secondNewRoot = ethers.utils.formatBytes32String('second new root'); const { signature: fakeSignature } = await fakeUpdater.signUpdate( @@ -174,7 +174,7 @@ describe('Replica', async () => { it('Rejects updates not building off latest enqueued root', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); const fakeLatestRoot = ethers.utils.formatBytes32String('fake root'); const secondNewRoot = ethers.utils.formatBytes32String('second new root'); @@ -189,7 +189,7 @@ describe('Replica', async () => { }); it('Accepts a double update proof', async () => { - const firstRoot = await replica.current(); + const firstRoot = await replica.committedRoot(); const secondRoot = ethers.utils.formatBytes32String('second root'); const thirdRoot = ethers.utils.formatBytes32String('third root'); @@ -213,28 +213,28 @@ describe('Replica', async () => { it('Confirms a ready update', async () => { const newRoot = ethers.utils.formatBytes32String('new root'); - await enqueueValidUpdate(newRoot); + await submitValidUpdate(newRoot); await increaseTimestampBy(ethers.provider, optimisticSeconds); expect(await replica.canConfirm()).to.be.true; await replica.confirm(); - expect(await replica.current()).to.equal(newRoot); + expect(await replica.committedRoot()).to.equal(newRoot); }); it('Batch-confirms several ready updates', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); const secondNewRoot = ethers.utils.formatBytes32String('second next root'); - await enqueueValidUpdate(secondNewRoot); + await submitValidUpdate(secondNewRoot); // Increase time enough for both updates to be confirmable await increaseTimestampBy(ethers.provider, optimisticSeconds * 2); expect(await replica.canConfirm()).to.be.true; await replica.confirm(); - expect(await replica.current()).to.equal(secondNewRoot); + expect(await replica.committedRoot()).to.equal(secondNewRoot); }); it('Rejects confirmation attempt on empty queue', async () => { @@ -246,10 +246,10 @@ describe('Replica', async () => { it('Rejects an early confirmation attempt', async () => { const firstNewRoot = ethers.utils.formatBytes32String('first new root'); - await enqueueValidUpdate(firstNewRoot); + await submitValidUpdate(firstNewRoot); // Don't increase time enough for update to be confirmable. - // Note that we use optimisticSeconds - 2 because the call to enqueue + // Note that we use optimisticSeconds - 2 because the call to submit // the valid root has already increased the timestamp by 1. await increaseTimestampBy(ethers.provider, optimisticSeconds - 2); @@ -262,7 +262,7 @@ describe('Replica', async () => { const testCase = merkleTestCases[0]; let { leaf, index, path } = testCase.proofs[0]; - await replica.setCurrentRoot(testCase.expectedRoot); + await replica.setCommittedRoot(testCase.expectedRoot); // Ensure proper static call return value expect(await replica.callStatic.prove(leaf, path as BytesArray, index)).to @@ -276,7 +276,7 @@ describe('Replica', async () => { const testCase = merkleTestCases[0]; let { leaf, index, path } = testCase.proofs[0]; - await replica.setCurrentRoot(testCase.expectedRoot); + await replica.setCommittedRoot(testCase.expectedRoot); // Prove message, which changes status to MessageStatus.Pending await replica.prove(leaf, path as BytesArray, index); @@ -298,7 +298,7 @@ describe('Replica', async () => { path[0] = path[1]; path[1] = firstHash; - await replica.setCurrentRoot(testCase.expectedRoot); + await replica.setCommittedRoot(testCase.expectedRoot); expect(await replica.callStatic.prove(leaf, path as BytesArray, index)).to .be.false; @@ -313,11 +313,11 @@ describe('Replica', async () => { const testRecipientFactory = new contracts.TestRecipient__factory(signer); const testRecipient = await testRecipientFactory.deploy(); - const sequence = 0; + const nonce = 0; const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, testRecipient.address, '0x', @@ -333,24 +333,24 @@ describe('Replica', async () => { const processTx = replica.process(opticsMessage); await expect(processTx) .to.emit(replica, 'ProcessSuccess') - .withArgs(optics.messageToLeaf(opticsMessage)); + .withArgs(optics.messageHash(opticsMessage)); }); it('Fails to process an unproved message', async () => { const [sender, recipient] = await ethers.getSigners(); - const sequence = 0; + const nonce = 0; const body = ethers.utils.formatBytes32String('message'); const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, recipient.address, body, ); - await expect(replica.process(opticsMessage)).to.be.revertedWith('!pending'); + await expect(replica.process(opticsMessage)).to.be.revertedWith('!proven'); }); for (let i = 0; i < badRecipientFactories.length; i++) { @@ -361,11 +361,11 @@ describe('Replica', async () => { const factory = new badRecipientFactories[i](signer); const badRecipient = await factory.deploy(); - const sequence = 0; + const nonce = 0; const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, badRecipient.address, '0x', @@ -379,13 +379,13 @@ describe('Replica', async () => { it('Fails to process message with wrong destination Domain', async () => { const [sender, recipient] = await ethers.getSigners(); - const sequence = 0; + const nonce = 0; const body = ethers.utils.formatBytes32String('message'); const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, // Wrong destination Domain localDomain + 5, recipient.address, @@ -398,13 +398,13 @@ describe('Replica', async () => { }); it('Processes message sent to a non-existent contract address', async () => { - const sequence = 0; + const nonce = 0; const body = ethers.utils.formatBytes32String('message'); const opticsMessage = optics.formatMessage( remoteDomain, opticsMessageSender.address, - sequence, + nonce, localDomain, '0x1234567890123456789012345678901234567890', // non-existent contract address body, @@ -417,13 +417,13 @@ describe('Replica', async () => { it('Fails to process an undergased transaction', async () => { const [sender, recipient] = await ethers.getSigners(); - const sequence = 0; + const nonce = 0; const body = ethers.utils.formatBytes32String('message'); const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, recipient.address, body, @@ -444,11 +444,11 @@ describe('Replica', async () => { const factory = new contracts.BadRecipientHandle__factory(recipient); const testRecipient = await factory.deploy(); - const sequence = 0; + const nonce = 0; const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, testRecipient.address, '0x', @@ -467,14 +467,14 @@ describe('Replica', async () => { const testRecipientFactory = new contracts.TestRecipient__factory(signer); const testRecipient = await testRecipientFactory.deploy(); - const sequence = 0; + const nonce = 0; // Note that hash of this message specifically matches leaf of 1st // proveAndProcess test case const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, testRecipient.address, '0x', @@ -482,7 +482,7 @@ describe('Replica', async () => { // Assert above message and test case have matching leaves const { path, index } = proveAndProcessTestCases[0]; - const messageLeaf = optics.messageToLeaf(opticsMessage); + const messageHash = optics.messageHash(opticsMessage); // Set replica's current root to match newly computed root that includes // the new leaf (normally root will have already been computed and path @@ -490,22 +490,22 @@ describe('Replica', async () => { // impossible to find the inputs that create a pre-determined root, we // simply recalculate root with the leaf using branchRoot) const proofRoot = await replica.testBranchRoot( - messageLeaf, + messageHash, path as BytesArray, index, ); - await replica.setCurrentRoot(proofRoot); + await replica.setCommittedRoot(proofRoot); await replica.proveAndProcess(opticsMessage, path as BytesArray, index); - expect(await replica.messages(messageLeaf)).to.equal( + expect(await replica.messages(messageHash)).to.equal( MessageStatus.PROCESSED, ); }); it('Has proveAndProcess fail if prove fails', async () => { const [sender, recipient] = await ethers.getSigners(); - const sequence = 0; + const nonce = 0; // Use 1st proof of 1st merkle vector test case const testCase = merkleTestCases[0]; @@ -515,7 +515,7 @@ describe('Replica', async () => { const opticsMessage = optics.formatMessage( remoteDomain, sender.address, - sequence, + nonce, localDomain, recipient.address, '0x', @@ -523,7 +523,7 @@ describe('Replica', async () => { // Ensure root given in proof and actual root don't match so that // replica.prove(...) will fail - const actualRoot = await replica.current(); + const actualRoot = await replica.committedRoot(); const proofRoot = await replica.testBranchRoot( leaf, path as BytesArray, diff --git a/typescript/optics-tests/test/xAppConnectionManager.test.ts b/typescript/optics-tests/test/xAppConnectionManager.test.ts index 6accc8875..8fea54a05 100644 --- a/typescript/optics-tests/test/xAppConnectionManager.test.ts +++ b/typescript/optics-tests/test/xAppConnectionManager.test.ts @@ -65,13 +65,6 @@ describe('XAppConnectionManager', async () => { ).to.be.revertedWith(ONLY_OWNER_REVERT_MSG); }); - it('isOwner returns true for owner and false for non-owner', async () => { - const [newOwner, nonOwner] = await ethers.getSigners(); - await connectionManager.transferOwnership(newOwner.address); - expect(await connectionManager.isOwner(newOwner.address)).to.be.true; - expect(await connectionManager.isOwner(nonOwner.address)).to.be.false; - }); - it('isReplica returns true for enrolledReplica and false for non-enrolled Replica', async () => { const [nonEnrolledReplica] = await ethers.getSigners(); expect(await connectionManager.isReplica(enrolledReplica.address)).to.be diff --git a/typescript/typechain/optics-core/Common.d.ts b/typescript/typechain/optics-core/Common.d.ts index b3f804812..5ef8363a1 100644 --- a/typescript/typechain/optics-core/Common.d.ts +++ b/typescript/typechain/optics-core/Common.d.ts @@ -21,7 +21,7 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface CommonInterface extends ethers.utils.Interface { functions: { - "current()": FunctionFragment; + "committedRoot()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "localDomain()": FunctionFragment; @@ -32,7 +32,10 @@ interface CommonInterface extends ethers.utils.Interface { "updater()": FunctionFragment; }; - encodeFunctionData(functionFragment: "current", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -57,7 +60,10 @@ interface CommonInterface extends ethers.utils.Interface { encodeFunctionData(functionFragment: "state", values?: undefined): string; encodeFunctionData(functionFragment: "updater", values?: undefined): string; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -135,7 +141,7 @@ export class Common extends BaseContract { interface: CommonInterface; functions: { - current(overrides?: CallOverrides): Promise<[string]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; doubleUpdate( _oldRoot: BytesLike, @@ -163,7 +169,7 @@ export class Common extends BaseContract { updater(overrides?: CallOverrides): Promise<[string]>; }; - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -188,7 +194,7 @@ export class Common extends BaseContract { updater(overrides?: CallOverrides): Promise; callStatic: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -249,7 +255,7 @@ export class Common extends BaseContract { }; estimateGas: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -278,7 +284,7 @@ export class Common extends BaseContract { }; populateTransaction: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, diff --git a/typescript/typechain/optics-core/GovernanceRouter.d.ts b/typescript/typechain/optics-core/GovernanceRouter.d.ts index c0d25690e..197059cae 100644 --- a/typescript/typechain/optics-core/GovernanceRouter.d.ts +++ b/typescript/typechain/optics-core/GovernanceRouter.d.ts @@ -489,10 +489,10 @@ export class GovernanceRouter extends BaseContract { InitiateRecovery( recoveryManager?: string | null, - endBlock?: null + recoveryActiveAt?: null ): TypedEventFilter< [string, BigNumber], - { recoveryManager: string; endBlock: BigNumber } + { recoveryManager: string; recoveryActiveAt: BigNumber } >; SetRouter( diff --git a/typescript/typechain/optics-core/Home.d.ts b/typescript/typechain/optics-core/Home.d.ts index 3c075105f..e0ff1df4e 100644 --- a/typescript/typechain/optics-core/Home.d.ts +++ b/typescript/typechain/optics-core/Home.d.ts @@ -22,21 +22,21 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface HomeInterface extends ethers.utils.Interface { functions: { "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "committedRoot()": FunctionFragment; "count()": FunctionFragment; - "current()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; - "enqueue(uint32,bytes32,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; "initialize(address)": FunctionFragment; "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; "owner()": FunctionFragment; "queueContains(bytes32)": FunctionFragment; "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; "renounceOwnership()": FunctionFragment; "root()": FunctionFragment; - "sequences(uint32)": FunctionFragment; "setUpdater(address)": FunctionFragment; "setUpdaterManager(address)": FunctionFragment; "state()": FunctionFragment; @@ -52,16 +52,19 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", values?: undefined ): string; - encodeFunctionData(functionFragment: "count", values?: undefined): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( - functionFragment: "doubleUpdate", - values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + functionFragment: "committedRoot", + values?: undefined ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; encodeFunctionData( - functionFragment: "enqueue", + functionFragment: "dispatch", values: [BigNumberish, BytesLike, BytesLike] ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; encodeFunctionData( functionFragment: "homeDomainHash", values?: undefined @@ -75,6 +78,10 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "localDomain", values?: undefined ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData( functionFragment: "queueContains", @@ -90,10 +97,6 @@ interface HomeInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData(functionFragment: "root", values?: undefined): string; - encodeFunctionData( - functionFragment: "sequences", - values: [BigNumberish] - ): string; encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; encodeFunctionData( functionFragment: "setUpdaterManager", @@ -123,13 +126,16 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike ): Result; - decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result; decodeFunctionResult( functionFragment: "homeDomainHash", data: BytesLike @@ -143,6 +149,7 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "localDomain", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult( functionFragment: "queueContains", @@ -158,7 +165,6 @@ interface HomeInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sequences", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; decodeFunctionResult( functionFragment: "setUpdaterManager", @@ -182,7 +188,7 @@ interface HomeInterface extends ethers.utils.Interface { ): Result; events: { - "Dispatch(uint256,uint64,bytes32,bytes32,bytes)": EventFragment; + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; "NewUpdater(address)": EventFragment; @@ -248,9 +254,16 @@ export class Home extends BaseContract { functions: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + count(overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -260,13 +273,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise<[string]>; improperUpdate( @@ -283,6 +289,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise<[number]>; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + owner(overrides?: CallOverrides): Promise<[string]>; queueContains( @@ -300,8 +308,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise<[string]>; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -316,7 +322,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -328,7 +334,7 @@ export class Home extends BaseContract { ): Promise<[BigNumber] & { count: BigNumber }>; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -341,9 +347,16 @@ export class Home extends BaseContract { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -353,13 +366,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -376,6 +382,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; @@ -390,8 +398,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -406,7 +412,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -416,7 +422,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -429,9 +435,16 @@ export class Home extends BaseContract { callStatic: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -441,13 +454,6 @@ export class Home extends BaseContract { overrides?: CallOverrides ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: CallOverrides - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -464,6 +470,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -479,8 +487,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setUpdater(_updater: string, overrides?: CallOverrides): Promise; setUpdaterManager( @@ -492,7 +498,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -502,7 +508,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: CallOverrides @@ -515,18 +521,18 @@ export class Home extends BaseContract { filters: { Dispatch( + messageHash?: BytesLike | null, leafIndex?: BigNumberish | null, - destinationAndSequence?: BigNumberish | null, - leaf?: BytesLike | null, - current?: null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, message?: null ): TypedEventFilter< - [BigNumber, BigNumber, string, string, string], + [string, BigNumber, BigNumber, string, string], { + messageHash: string; leafIndex: BigNumber; - destinationAndSequence: BigNumber; - leaf: string; - current: string; + destinationAndNonce: BigNumber; + committedRoot: string; message: string; } >; @@ -596,9 +602,16 @@ export class Home extends BaseContract { estimateGas: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -608,13 +621,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -631,6 +637,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -648,11 +656,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -675,7 +678,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -691,9 +694,16 @@ export class Home extends BaseContract { overrides?: CallOverrides ): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -703,13 +713,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -726,6 +729,11 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -743,11 +751,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -770,7 +773,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } diff --git a/typescript/typechain/optics-core/Replica.d.ts b/typescript/typechain/optics-core/Replica.d.ts index 5d5c036e3..48dbbf77b 100644 --- a/typescript/typechain/optics-core/Replica.d.ts +++ b/typescript/typechain/optics-core/Replica.d.ts @@ -25,9 +25,9 @@ interface ReplicaInterface extends ethers.utils.Interface { "RESERVE_GAS()": FunctionFragment; "acceptableRoot(bytes32)": FunctionFragment; "canConfirm()": FunctionFragment; + "committedRoot()": FunctionFragment; "confirm()": FunctionFragment; "confirmAt(bytes32)": FunctionFragment; - "current()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "initialize(uint32,address,bytes32,uint256)": FunctionFragment; @@ -63,12 +63,15 @@ interface ReplicaInterface extends ethers.utils.Interface { functionFragment: "canConfirm", values?: undefined ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData(functionFragment: "confirm", values?: undefined): string; encodeFunctionData( functionFragment: "confirmAt", values: [BytesLike] ): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -210,9 +213,12 @@ interface ReplicaInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "canConfirm", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "confirm", data: BytesLike): Result; decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -326,14 +332,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise<[boolean]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -347,7 +353,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -480,14 +486,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -501,7 +507,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -632,12 +638,12 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm(overrides?: CallOverrides): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -651,7 +657,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: CallOverrides ): Promise; @@ -791,14 +797,14 @@ export class Replica extends BaseContract { ProcessError( messageHash?: BytesLike | null, - sequence?: BigNumberish | null, + nonce?: BigNumberish | null, recipient?: string | null, returnData?: null ): TypedEventFilter< [string, number, string, string], { messageHash: string; - sequence: number; + nonce: number; recipient: string; returnData: string; } @@ -836,14 +842,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -857,7 +863,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -990,6 +996,8 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -999,8 +1007,6 @@ export class Replica extends BaseContract { overrides?: CallOverrides ): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -1014,7 +1020,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; diff --git a/typescript/typechain/optics-core/TestCommon.d.ts b/typescript/typechain/optics-core/TestCommon.d.ts index bac45b174..66f2173a3 100644 --- a/typescript/typechain/optics-core/TestCommon.d.ts +++ b/typescript/typechain/optics-core/TestCommon.d.ts @@ -21,7 +21,7 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface TestCommonInterface extends ethers.utils.Interface { functions: { - "current()": FunctionFragment; + "committedRoot()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "localDomain()": FunctionFragment; @@ -34,7 +34,10 @@ interface TestCommonInterface extends ethers.utils.Interface { "updater()": FunctionFragment; }; - encodeFunctionData(functionFragment: "current", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -64,7 +67,10 @@ interface TestCommonInterface extends ethers.utils.Interface { ): string; encodeFunctionData(functionFragment: "updater", values?: undefined): string; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -147,7 +153,7 @@ export class TestCommon extends BaseContract { interface: TestCommonInterface; functions: { - current(overrides?: CallOverrides): Promise<[string]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; doubleUpdate( _oldRoot: BytesLike, @@ -187,7 +193,7 @@ export class TestCommon extends BaseContract { updater(overrides?: CallOverrides): Promise<[string]>; }; - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -224,7 +230,7 @@ export class TestCommon extends BaseContract { updater(overrides?: CallOverrides): Promise; callStatic: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -294,7 +300,7 @@ export class TestCommon extends BaseContract { }; estimateGas: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -335,7 +341,7 @@ export class TestCommon extends BaseContract { }; populateTransaction: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, diff --git a/typescript/typechain/optics-core/TestGovernanceRouter.d.ts b/typescript/typechain/optics-core/TestGovernanceRouter.d.ts index d42016800..9177fc09e 100644 --- a/typescript/typechain/optics-core/TestGovernanceRouter.d.ts +++ b/typescript/typechain/optics-core/TestGovernanceRouter.d.ts @@ -567,10 +567,10 @@ export class TestGovernanceRouter extends BaseContract { InitiateRecovery( recoveryManager?: string | null, - endBlock?: null + recoveryActiveAt?: null ): TypedEventFilter< [string, BigNumber], - { recoveryManager: string; endBlock: BigNumber } + { recoveryManager: string; recoveryActiveAt: BigNumber } >; SetRouter( diff --git a/typescript/typechain/optics-core/TestHome.d.ts b/typescript/typechain/optics-core/TestHome.d.ts index 85cdd18b0..2a15ef4e1 100644 --- a/typescript/typechain/optics-core/TestHome.d.ts +++ b/typescript/typechain/optics-core/TestHome.d.ts @@ -22,28 +22,28 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface TestHomeInterface extends ethers.utils.Interface { functions: { "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "committedRoot()": FunctionFragment; "count()": FunctionFragment; - "current()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; - "enqueue(uint32,bytes32,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; "initialize(address)": FunctionFragment; "localDomain()": FunctionFragment; "nextLeafIndex()": FunctionFragment; + "nonces(uint32)": FunctionFragment; "owner()": FunctionFragment; "queueContains(bytes32)": FunctionFragment; "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; "renounceOwnership()": FunctionFragment; "root()": FunctionFragment; - "sequences(uint32)": FunctionFragment; "setFailed()": FunctionFragment; "setUpdater(address)": FunctionFragment; "setUpdaterManager(address)": FunctionFragment; "state()": FunctionFragment; "suggestUpdate()": FunctionFragment; - "testDestinationAndSequence(uint32,uint32)": FunctionFragment; + "testDestinationAndNonce(uint32,uint32)": FunctionFragment; "testHomeDomainHash()": FunctionFragment; "transferOwnership(address)": FunctionFragment; "tree()": FunctionFragment; @@ -56,16 +56,19 @@ interface TestHomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", values?: undefined ): string; - encodeFunctionData(functionFragment: "count", values?: undefined): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( - functionFragment: "doubleUpdate", - values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + functionFragment: "committedRoot", + values?: undefined ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; encodeFunctionData( - functionFragment: "enqueue", + functionFragment: "dispatch", values: [BigNumberish, BytesLike, BytesLike] ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; encodeFunctionData( functionFragment: "homeDomainHash", values?: undefined @@ -83,6 +86,10 @@ interface TestHomeInterface extends ethers.utils.Interface { functionFragment: "nextLeafIndex", values?: undefined ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData( functionFragment: "queueContains", @@ -98,10 +105,6 @@ interface TestHomeInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData(functionFragment: "root", values?: undefined): string; - encodeFunctionData( - functionFragment: "sequences", - values: [BigNumberish] - ): string; encodeFunctionData(functionFragment: "setFailed", values?: undefined): string; encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; encodeFunctionData( @@ -114,7 +117,7 @@ interface TestHomeInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData( - functionFragment: "testDestinationAndSequence", + functionFragment: "testDestinationAndNonce", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData( @@ -140,13 +143,16 @@ interface TestHomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike ): Result; - decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result; decodeFunctionResult( functionFragment: "homeDomainHash", data: BytesLike @@ -164,6 +170,7 @@ interface TestHomeInterface extends ethers.utils.Interface { functionFragment: "nextLeafIndex", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult( functionFragment: "queueContains", @@ -179,7 +186,6 @@ interface TestHomeInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sequences", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFailed", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; decodeFunctionResult( @@ -192,7 +198,7 @@ interface TestHomeInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "testDestinationAndSequence", + functionFragment: "testDestinationAndNonce", data: BytesLike ): Result; decodeFunctionResult( @@ -212,7 +218,7 @@ interface TestHomeInterface extends ethers.utils.Interface { ): Result; events: { - "Dispatch(uint256,uint64,bytes32,bytes32,bytes)": EventFragment; + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; "NewUpdater(address)": EventFragment; @@ -278,9 +284,16 @@ export class TestHome extends BaseContract { functions: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + count(overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -290,13 +303,6 @@ export class TestHome extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise<[string]>; improperUpdate( @@ -315,6 +321,8 @@ export class TestHome extends BaseContract { nextLeafIndex(overrides?: CallOverrides): Promise<[BigNumber]>; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + owner(overrides?: CallOverrides): Promise<[string]>; queueContains( @@ -332,8 +340,6 @@ export class TestHome extends BaseContract { root(overrides?: CallOverrides): Promise<[string]>; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; - setFailed( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -352,11 +358,11 @@ export class TestHome extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; - testDestinationAndSequence( + testDestinationAndNonce( _destination: BigNumberish, - _sequence: BigNumberish, + _nonce: BigNumberish, overrides?: CallOverrides ): Promise<[BigNumber]>; @@ -372,7 +378,7 @@ export class TestHome extends BaseContract { ): Promise<[BigNumber] & { count: BigNumber }>; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -385,9 +391,16 @@ export class TestHome extends BaseContract { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -397,13 +410,6 @@ export class TestHome extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -422,6 +428,8 @@ export class TestHome extends BaseContract { nextLeafIndex(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; @@ -436,8 +444,6 @@ export class TestHome extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setFailed( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -456,11 +462,11 @@ export class TestHome extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; - testDestinationAndSequence( + testDestinationAndNonce( _destination: BigNumberish, - _sequence: BigNumberish, + _nonce: BigNumberish, overrides?: CallOverrides ): Promise; @@ -474,7 +480,7 @@ export class TestHome extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -487,9 +493,16 @@ export class TestHome extends BaseContract { callStatic: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -499,13 +512,6 @@ export class TestHome extends BaseContract { overrides?: CallOverrides ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: CallOverrides - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -524,6 +530,8 @@ export class TestHome extends BaseContract { nextLeafIndex(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -539,8 +547,6 @@ export class TestHome extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setFailed(overrides?: CallOverrides): Promise; setUpdater(_updater: string, overrides?: CallOverrides): Promise; @@ -554,11 +560,11 @@ export class TestHome extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; - testDestinationAndSequence( + testDestinationAndNonce( _destination: BigNumberish, - _sequence: BigNumberish, + _nonce: BigNumberish, overrides?: CallOverrides ): Promise; @@ -572,7 +578,7 @@ export class TestHome extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: CallOverrides @@ -585,18 +591,18 @@ export class TestHome extends BaseContract { filters: { Dispatch( + messageHash?: BytesLike | null, leafIndex?: BigNumberish | null, - destinationAndSequence?: BigNumberish | null, - leaf?: BytesLike | null, - current?: null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, message?: null ): TypedEventFilter< - [BigNumber, BigNumber, string, string, string], + [string, BigNumber, BigNumber, string, string], { + messageHash: string; leafIndex: BigNumber; - destinationAndSequence: BigNumber; - leaf: string; - current: string; + destinationAndNonce: BigNumber; + committedRoot: string; message: string; } >; @@ -666,9 +672,16 @@ export class TestHome extends BaseContract { estimateGas: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -678,13 +691,6 @@ export class TestHome extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -703,6 +709,8 @@ export class TestHome extends BaseContract { nextLeafIndex(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -720,11 +728,6 @@ export class TestHome extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setFailed( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -743,9 +746,9 @@ export class TestHome extends BaseContract { suggestUpdate(overrides?: CallOverrides): Promise; - testDestinationAndSequence( + testDestinationAndNonce( _destination: BigNumberish, - _sequence: BigNumberish, + _nonce: BigNumberish, overrides?: CallOverrides ): Promise; @@ -759,7 +762,7 @@ export class TestHome extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -775,9 +778,16 @@ export class TestHome extends BaseContract { overrides?: CallOverrides ): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -787,13 +797,6 @@ export class TestHome extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -812,6 +815,11 @@ export class TestHome extends BaseContract { nextLeafIndex(overrides?: CallOverrides): Promise; + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -829,11 +837,6 @@ export class TestHome extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setFailed( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -852,9 +855,9 @@ export class TestHome extends BaseContract { suggestUpdate(overrides?: CallOverrides): Promise; - testDestinationAndSequence( + testDestinationAndNonce( _destination: BigNumberish, - _sequence: BigNumberish, + _nonce: BigNumberish, overrides?: CallOverrides ): Promise; @@ -870,7 +873,7 @@ export class TestHome extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } diff --git a/typescript/typechain/optics-core/TestMessage.d.ts b/typescript/typechain/optics-core/TestMessage.d.ts index 0ca56b4f1..4c13a29ee 100644 --- a/typescript/typechain/optics-core/TestMessage.d.ts +++ b/typescript/typechain/optics-core/TestMessage.d.ts @@ -23,11 +23,11 @@ interface TestMessageInterface extends ethers.utils.Interface { "body(bytes)": FunctionFragment; "destination(bytes)": FunctionFragment; "leaf(bytes)": FunctionFragment; + "nonce(bytes)": FunctionFragment; "origin(bytes)": FunctionFragment; "recipient(bytes)": FunctionFragment; "recipientAddress(bytes)": FunctionFragment; "sender(bytes)": FunctionFragment; - "sequence(bytes)": FunctionFragment; }; encodeFunctionData(functionFragment: "body", values: [BytesLike]): string; @@ -36,6 +36,7 @@ interface TestMessageInterface extends ethers.utils.Interface { values: [BytesLike] ): string; encodeFunctionData(functionFragment: "leaf", values: [BytesLike]): string; + encodeFunctionData(functionFragment: "nonce", values: [BytesLike]): string; encodeFunctionData(functionFragment: "origin", values: [BytesLike]): string; encodeFunctionData( functionFragment: "recipient", @@ -46,7 +47,6 @@ interface TestMessageInterface extends ethers.utils.Interface { values: [BytesLike] ): string; encodeFunctionData(functionFragment: "sender", values: [BytesLike]): string; - encodeFunctionData(functionFragment: "sequence", values: [BytesLike]): string; decodeFunctionResult(functionFragment: "body", data: BytesLike): Result; decodeFunctionResult( @@ -54,6 +54,7 @@ interface TestMessageInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "leaf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "origin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recipient", data: BytesLike): Result; decodeFunctionResult( @@ -61,7 +62,6 @@ interface TestMessageInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "sender", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sequence", data: BytesLike): Result; events: {}; } @@ -119,6 +119,8 @@ export class TestMessage extends BaseContract { leaf(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>; + nonce(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>; + origin(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>; recipient( @@ -132,8 +134,6 @@ export class TestMessage extends BaseContract { ): Promise<[string]>; sender(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>; - - sequence(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>; }; body(_message: BytesLike, overrides?: CallOverrides): Promise; @@ -142,6 +142,8 @@ export class TestMessage extends BaseContract { leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + origin(_message: BytesLike, overrides?: CallOverrides): Promise; recipient(_message: BytesLike, overrides?: CallOverrides): Promise; @@ -153,8 +155,6 @@ export class TestMessage extends BaseContract { sender(_message: BytesLike, overrides?: CallOverrides): Promise; - sequence(_message: BytesLike, overrides?: CallOverrides): Promise; - callStatic: { body(_message: BytesLike, overrides?: CallOverrides): Promise; @@ -165,6 +165,8 @@ export class TestMessage extends BaseContract { leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + origin(_message: BytesLike, overrides?: CallOverrides): Promise; recipient(_message: BytesLike, overrides?: CallOverrides): Promise; @@ -175,8 +177,6 @@ export class TestMessage extends BaseContract { ): Promise; sender(_message: BytesLike, overrides?: CallOverrides): Promise; - - sequence(_message: BytesLike, overrides?: CallOverrides): Promise; }; filters: {}; @@ -191,6 +191,8 @@ export class TestMessage extends BaseContract { leaf(_message: BytesLike, overrides?: CallOverrides): Promise; + nonce(_message: BytesLike, overrides?: CallOverrides): Promise; + origin(_message: BytesLike, overrides?: CallOverrides): Promise; recipient( @@ -204,11 +206,6 @@ export class TestMessage extends BaseContract { ): Promise; sender(_message: BytesLike, overrides?: CallOverrides): Promise; - - sequence( - _message: BytesLike, - overrides?: CallOverrides - ): Promise; }; populateTransaction: { @@ -227,27 +224,27 @@ export class TestMessage extends BaseContract { overrides?: CallOverrides ): Promise; - origin( + nonce( _message: BytesLike, overrides?: CallOverrides ): Promise; - recipient( + origin( _message: BytesLike, overrides?: CallOverrides ): Promise; - recipientAddress( + recipient( _message: BytesLike, overrides?: CallOverrides ): Promise; - sender( + recipientAddress( _message: BytesLike, overrides?: CallOverrides ): Promise; - sequence( + sender( _message: BytesLike, overrides?: CallOverrides ): Promise; diff --git a/typescript/typechain/optics-core/TestReplica.d.ts b/typescript/typechain/optics-core/TestReplica.d.ts index c98c603d2..15ce63d4c 100644 --- a/typescript/typechain/optics-core/TestReplica.d.ts +++ b/typescript/typechain/optics-core/TestReplica.d.ts @@ -25,9 +25,9 @@ interface TestReplicaInterface extends ethers.utils.Interface { "RESERVE_GAS()": FunctionFragment; "acceptableRoot(bytes32)": FunctionFragment; "canConfirm()": FunctionFragment; + "committedRoot()": FunctionFragment; "confirm()": FunctionFragment; "confirmAt(bytes32)": FunctionFragment; - "current()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "initialize(uint32,address,bytes32,uint256)": FunctionFragment; @@ -42,7 +42,7 @@ interface TestReplicaInterface extends ethers.utils.Interface { "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; "remoteDomain()": FunctionFragment; - "setCurrentRoot(bytes32)": FunctionFragment; + "setCommittedRoot(bytes32)": FunctionFragment; "setFailed()": FunctionFragment; "setMessagePending(bytes)": FunctionFragment; "setRemoteDomain(uint32)": FunctionFragment; @@ -72,12 +72,15 @@ interface TestReplicaInterface extends ethers.utils.Interface { functionFragment: "canConfirm", values?: undefined ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData(functionFragment: "confirm", values?: undefined): string; encodeFunctionData( functionFragment: "confirmAt", values: [BytesLike] ): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -200,7 +203,7 @@ interface TestReplicaInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData( - functionFragment: "setCurrentRoot", + functionFragment: "setCommittedRoot", values: [BytesLike] ): string; encodeFunctionData(functionFragment: "setFailed", values?: undefined): string; @@ -283,9 +286,12 @@ interface TestReplicaInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "canConfirm", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "confirm", data: BytesLike): Result; decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -328,7 +334,7 @@ interface TestReplicaInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult( - functionFragment: "setCurrentRoot", + functionFragment: "setCommittedRoot", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "setFailed", data: BytesLike): Result; @@ -426,14 +432,14 @@ export class TestReplica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise<[boolean]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -447,7 +453,7 @@ export class TestReplica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -560,7 +566,7 @@ export class TestReplica extends BaseContract { remoteDomain(overrides?: CallOverrides): Promise<[number]>; - setCurrentRoot( + setCommittedRoot( _newRoot: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -653,14 +659,14 @@ export class TestReplica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -674,7 +680,7 @@ export class TestReplica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -782,7 +788,7 @@ export class TestReplica extends BaseContract { remoteDomain(overrides?: CallOverrides): Promise; - setCurrentRoot( + setCommittedRoot( _newRoot: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -878,12 +884,12 @@ export class TestReplica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm(overrides?: CallOverrides): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -897,7 +903,7 @@ export class TestReplica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: CallOverrides ): Promise; @@ -1007,7 +1013,7 @@ export class TestReplica extends BaseContract { remoteDomain(overrides?: CallOverrides): Promise; - setCurrentRoot( + setCommittedRoot( _newRoot: BytesLike, overrides?: CallOverrides ): Promise; @@ -1105,14 +1111,14 @@ export class TestReplica extends BaseContract { ProcessError( messageHash?: BytesLike | null, - sequence?: BigNumberish | null, + nonce?: BigNumberish | null, recipient?: string | null, returnData?: null ): TypedEventFilter< [string, number, string, string], { messageHash: string; - sequence: number; + nonce: number; recipient: string; returnData: string; } @@ -1150,14 +1156,14 @@ export class TestReplica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -1171,7 +1177,7 @@ export class TestReplica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1280,7 +1286,7 @@ export class TestReplica extends BaseContract { remoteDomain(overrides?: CallOverrides): Promise; - setCurrentRoot( + setCommittedRoot( _newRoot: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1377,6 +1383,8 @@ export class TestReplica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1386,8 +1394,6 @@ export class TestReplica extends BaseContract { overrides?: CallOverrides ): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -1401,7 +1407,7 @@ export class TestReplica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -1513,7 +1519,7 @@ export class TestReplica extends BaseContract { remoteDomain(overrides?: CallOverrides): Promise; - setCurrentRoot( + setCommittedRoot( _newRoot: BytesLike, overrides?: Overrides & { from?: string | Promise } ): Promise; diff --git a/typescript/typechain/optics-core/TestXAppConnectionManager.d.ts b/typescript/typechain/optics-core/TestXAppConnectionManager.d.ts index 6a60b7e22..ce98453d8 100644 --- a/typescript/typechain/optics-core/TestXAppConnectionManager.d.ts +++ b/typescript/typechain/optics-core/TestXAppConnectionManager.d.ts @@ -23,7 +23,6 @@ interface TestXAppConnectionManagerInterface extends ethers.utils.Interface { functions: { "domainToReplica(uint32)": FunctionFragment; "home()": FunctionFragment; - "isOwner(address)": FunctionFragment; "isReplica(address)": FunctionFragment; "localDomain()": FunctionFragment; "owner()": FunctionFragment; @@ -44,7 +43,6 @@ interface TestXAppConnectionManagerInterface extends ethers.utils.Interface { values: [BigNumberish] ): string; encodeFunctionData(functionFragment: "home", values?: undefined): string; - encodeFunctionData(functionFragment: "isOwner", values: [string]): string; encodeFunctionData(functionFragment: "isReplica", values: [string]): string; encodeFunctionData( functionFragment: "localDomain", @@ -94,7 +92,6 @@ interface TestXAppConnectionManagerInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; decodeFunctionResult( functionFragment: "localDomain", @@ -203,8 +200,6 @@ export class TestXAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise<[string]>; - isOwner(_owner: string, overrides?: CallOverrides): Promise<[boolean]>; - isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; localDomain(overrides?: CallOverrides): Promise<[number]>; @@ -274,8 +269,6 @@ export class TestXAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -345,8 +338,6 @@ export class TestXAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -441,8 +432,6 @@ export class TestXAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -516,11 +505,6 @@ export class TestXAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner( - _owner: string, - overrides?: CallOverrides - ): Promise; - isReplica( _replica: string, overrides?: CallOverrides diff --git a/typescript/typechain/optics-core/XAppConnectionManager.d.ts b/typescript/typechain/optics-core/XAppConnectionManager.d.ts index 5af78bfb0..d6d86efa6 100644 --- a/typescript/typechain/optics-core/XAppConnectionManager.d.ts +++ b/typescript/typechain/optics-core/XAppConnectionManager.d.ts @@ -23,7 +23,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { functions: { "domainToReplica(uint32)": FunctionFragment; "home()": FunctionFragment; - "isOwner(address)": FunctionFragment; "isReplica(address)": FunctionFragment; "localDomain()": FunctionFragment; "owner()": FunctionFragment; @@ -43,7 +42,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { values: [BigNumberish] ): string; encodeFunctionData(functionFragment: "home", values?: undefined): string; - encodeFunctionData(functionFragment: "isOwner", values: [string]): string; encodeFunctionData(functionFragment: "isReplica", values: [string]): string; encodeFunctionData( functionFragment: "localDomain", @@ -89,7 +87,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; decodeFunctionResult( functionFragment: "localDomain", @@ -194,8 +191,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise<[string]>; - isOwner(_owner: string, overrides?: CallOverrides): Promise<[boolean]>; - isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; localDomain(overrides?: CallOverrides): Promise<[number]>; @@ -257,8 +252,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -320,8 +313,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -408,8 +399,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -475,11 +464,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner( - _owner: string, - overrides?: CallOverrides - ): Promise; - isReplica( _replica: string, overrides?: CallOverrides diff --git a/typescript/typechain/optics-core/factories/Common__factory.ts b/typescript/typechain/optics-core/factories/Common__factory.ts index e1c9808f5..a766af041 100644 --- a/typescript/typechain/optics-core/factories/Common__factory.ts +++ b/typescript/typechain/optics-core/factories/Common__factory.ts @@ -71,7 +71,7 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "committedRoot", outputs: [ { internalType: "bytes32", diff --git a/typescript/typechain/optics-core/factories/GovernanceRouter__factory.ts b/typescript/typechain/optics-core/factories/GovernanceRouter__factory.ts index e5937a12f..411b7f4fe 100644 --- a/typescript/typechain/optics-core/factories/GovernanceRouter__factory.ts +++ b/typescript/typechain/optics-core/factories/GovernanceRouter__factory.ts @@ -58,7 +58,7 @@ const _abi = [ { indexed: false, internalType: "uint256", - name: "endBlock", + name: "recoveryActiveAt", type: "uint256", }, ], @@ -475,7 +475,7 @@ const _abi = [ ]; const _bytecode = - "0x60c06040523480156200001157600080fd5b506040516200395338038062003953833981016040819052620000349162000050565b60e09190911b6001600160e01b03191660805260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a051613891620000c2600039806104a45280610f6352508061081d528061088e5280610f875280611aa552506138916000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806356d5d475116100d8578063db2021ae1161008c578063e6b3d94911610066578063e6b3d949146102a1578063e8c6f83a146102b4578063f05151df146102c757610177565b8063db2021ae1461027e578063de314b1914610291578063e54292981461029957610177565b806366cf8fab116100bd57806366cf8fab1461025b578063670a43c41461026e5780638d3638f41461027657610177565b806356d5d4751461024057806363706be31461025357610177565b806341bdc8b51161012f578063485cc95511610114578063485cc955146102055780634fedbbb5146102185780635585416c1461022b57610177565b806341bdc8b5146101df5780634626abee146101f257610177565b80632ead72f6116101605780632ead72f6146101af578063316c92b6146101cf5780633339df96146101d757610177565b80630c340a241461017c5780630ce219951461019a575b600080fd5b6101846102dc565b60405161019191906132fc565b60405180910390f35b6101ad6101a8366004613194565b6102f8565b005b6101c26101bd3660046130ec565b6103c2565b6040516101919190613328565b6101ad6103d4565b610184610522565b6101ad6101ed366004613004565b61053e565b6101ad610200366004613058565b610638565b6101ad610213366004613020565b610733565b6101ad610226366004613141565b6109c5565b610233610b8d565b604051610191919061359a565b6101ad61024e3660046131bf565b610bb1565b6101ad610e44565b6102336102693660046130d4565b610f27565b6101c2610f61565b610233610f85565b6101ad61028c366004613124565b610fa9565b610184611082565b6101c261109e565b6101ad6102af366004613004565b6110a4565b6101ad6102c2366004613194565b611183565b6102cf611234565b604051610191919061331d565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610300611234565b6103635760035473ffffffffffffffffffffffffffffffffffffffff16331461035e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b60405180910390fd5b6103b4565b60025473ffffffffffffffffffffffffffffffffffffffff1633146103b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b6103be8282611255565b5050565b60056020526000908152604090205481565b6103dc611234565b15610413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613450565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b6001541561049e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613487565b6104c8427f00000000000000000000000000000000000000000000000000000000000000006112e6565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae225916105189190613328565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610546611234565b6105a05760035473ffffffffffffffffffffffffffffffffffffffff16331461059b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b6105f1565b60025473ffffffffffffffffffffffffffffffffffffffff1633146105f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610640611234565b61069a5760035473ffffffffffffffffffffffffffffffffffffffff163314610695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b6106eb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b60005b8181101561072e5761072583838381811061070557fe5b90506020028101906107179190613627565b610720906136de565b611363565b506001016106ee565b505050565b600054610100900460ff168061074c575061074c611426565b8061075a575060005460ff16155b6107af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061376c602e913960400191505060405180910390fd5b600054610100900460ff1615801561081557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108437f00000000000000000000000000000000000000000000000000000000000000008383611437565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905561088c8561053e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561091b57600080fd5b505afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109539190613108565b63ffffffff1614610990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133e4565b5050801561072e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b610a1e611234565b15610a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613450565b6000610a608461152e565b90506000610a76610a71848661367e565b611580565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ae057600080fd5b505afa158015610af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1891906130b8565b73ffffffffffffffffffffffffffffffffffffffff1663d34686398684846040518463ffffffff1660e01b8152600401610b54939291906135ab565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c06913391016132fc565b60206040518083038186803b158015610c1e57600080fd5b505afa158015610c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c569190613098565b610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613419565b8282610c988282611755565b610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133ad565b6000610cda84826117a2565b9050610d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166117c6565b15610d4457610d3f610d3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611821565b61186f565b610e3c565b610d6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611908565b15610da757610d3f610da27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611966565b611980565b610dd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a0b565b15610e0a57610d3f610e057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a14565b611a2e565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613563565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b600154610ece576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103559061333f565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610f1d9173ffffffffffffffffffffffffffffffffffffffff909116906132fc565b60405180910390a1565b60068181548110610f3757600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b611002611234565b15611039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613450565b600061104483611aa3565b9050611051838383611437565b801561105d57506103be565b60006110718461106c85611ad2565b611aeb565b905061107c81611b18565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff1633146110f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f5565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146111d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613376565b6111dc611234565b15611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613450565b61121d8282611255565b60006112298383611d10565b905061072e81611b18565b60015460009080158015904283111590829061124d5750805b935050505090565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906112a19084908690613331565b60405180910390a2816112bd576112b783611d38565b506103be565b806112cb576112cb83611ddf565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561135a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006113748360000151611e3f565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516113a19190613254565b6000604051808303816000865af19150503d80600081146113de576040519150601f19603f3d011682016040523d82523d6000602084013e6113e3565b606091505b50935090508061141f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134be565b5050919050565b600061143130611e42565b15905090565b80611447576114458361152e565b505b600081611455576000611457565b825b600380547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8881168202929092177fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff858116918217948590556040519596509094908416937f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa936115209390910416908990613610565b60405180910390a350505050565b63ffffffff81166000908152600560205260409020548061157b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103559061352c565b919050565b805160609060006002820167ffffffffffffffff811180156115a157600080fd5b506040519080825280602002602001820160405280156115cb578160200160208202803683370190505b509050611619600060016040516020016115e59190613270565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906117a2565b8160008151811061162657fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910182015260405161166c916000916115e5918691016132cc565b8160018151811061167957fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b828110156117435760008582815181106116c357fe5b6020026020010151905060006116f66000836000015184602001515185602001516040516020016115e593929190613227565b90508084600285018151811061170857fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016116ad565b5061174d81611e48565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561135a57505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016117bd64ffffffffff85168284611e98565b95945050505050565b600060016117d383611ef9565b60ff1614801561135d5750604061180b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f29565b6bffffffffffffffffffffffff16101592915050565b600061182c826117c6565b156118675761186060015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f3d565b905061157b565b61135d611f63565b8060016118a0815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f87565b5060006118ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516612107565b905060005b8151811015611901576118f88282815181106118eb57fe5b6020026020010151611363565b506001016118d3565b5050505050565b600060025b60ff1661191983611ef9565b60ff1614801561135d575060256119517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f29565b6bffffffffffffffffffffffff161492915050565b600061197182611908565b15611867576118606002611837565b80600261198c81611877565b5060006119ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166122aa565b905060006119f16119ec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166122db565b611e3f565b905060006119fe83611aa3565b9050610e3c838383611437565b6000600361190d565b6000611a1f82611a0b565b15611867576118606003611837565b806003611a3a81611877565b506000611a687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166122aa565b90506000611a977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166122db565b90506119018282611255565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b606061135a611b13611b0e6000600287876040516020016115e593929190613285565b61230c565b612341565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8257600080fd5b505afa158015611b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bba91906130b8565b905060005b60065481101561072e57600063ffffffff1660068281548110611bde57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d08578173ffffffffffffffffffffffffffffffffffffffff1663d346863960068381548110611c3057fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611c6757fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611cd593928991016135ab565b600060405180830381600087803b158015611cef57600080fd5b505af1158015611d03573d6000803e3d6000fd5b505050505b600101611bbf565b606061135a611b13611d336000600387876040516020016115e593929190613285565b612385565b63ffffffff811660009081526005602052604081208190555b6006548110156103be578163ffffffff1660068281548110611d6f57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611dd45760068181548110611da657fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611ddc565b600101611d51565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611e5d8460208401612393565b90506000611e6a82611f29565b6bffffffffffffffffffffffff1690506000611e858361240b565b9184525082016020016040525092915050565b600080611ea5848461241f565b9050604051811115611eb5575060005b80611ee3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611ef2565b611eee858585612491565b9150505b9392505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016124a4565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000611f9383836124c5565b612100576000611fb1611fa5856124e7565b64ffffffffff166124ed565b9150506000611fc68464ffffffffff166124ed565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156120c55781810151838201526020016120ad565b50505050905090810190601f1680156120f25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006121397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806124a4565b905060006121aa60028061216e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611f29565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906125c1565b905060008260ff1667ffffffffffffffff811180156121c857600080fd5b5060405190808252806020026020018201604052801561220257816020015b6121ef612eb8565b8152602001906001900390816121e75790505b50905060005b60006122357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611f29565b6bffffffffffffffffffffffff1611156122a15761225283612651565b82828151811061225e57fe5b60209081029190910101515261227383612681565b82828151811061227f57fe5b602002602001015160200181905250612297836126c0565b9250600101612208565b50949350505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046124a4565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166005602061274b565b600061135d61231a83611966565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166128b9565b606060008061234f84611f29565b6bffffffffffffffffffffffff16905060405191508192506123748483602001612933565b508181016020016040529052919050565b600061135d61231a83611a14565b6000604051828111156123a65760206060fd5b506000805b84518110156123fe5760008582815181106123c257fe5b602002602001015190506123d881848701612933565b506123e281611f29565b6bffffffffffffffffffffffff169290920191506001016123ab565b5061174d60008483612491565b600061241682612a5f565b60200292915050565b8181018281101561135d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166124bb85858561274b565b901c949350505050565b60008164ffffffffff166124d8846124e7565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156125555760ff600882021684901c61251281612a93565b61ffff16841793508160ff1660101461252d57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016124f3565b50600f5b60ff8160ff1610156125bb5760ff600882021684901c61257881612a93565b61ffff16831792508160ff1660001461259357601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612559565b50915091565b6000806125cd86612ac3565b6bffffffffffffffffffffffff1690506125e686612ad7565b6125fa856125f4848961241f565b9061241f565b1115612629577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061174d565b612633818661241f565b90506126478364ffffffffff168286611e98565b9695505050505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682602061274b565b606061135d611b13604061269485612b01565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046125c1565b60008160016126ce81611877565b5060006126da85612b01565b60400190506117bd818061270f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611f29565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906125c1565b600060ff821661275d57506000611ef2565b61276684611f29565b6bffffffffffffffffffffffff166127818460ff851661241f565b1115612823576127c261279385612ac3565b6bffffffffffffffffffffffff166127aa86611f29565b6bffffffffffffffffffffffff16858560ff16612b31565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156120c55781810151838201526020016120ad565b60208260ff161115612880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061379a603a913960400191505060405180910390fd5b60088202600061288f86612ac3565b6bffffffffffffffffffffffff16905060006128aa83612c8c565b91909501511695945050505050565b60006128c482612cd5565b61292f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b600061293e83612d12565b612993576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806137d46028913960400191505060405180910390fd5b61299c83612cd5565b6129f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806137fc602b913960400191505060405180910390fd5b60006129fc84611f29565b6bffffffffffffffffffffffff1690506000612a1785612ac3565b6bffffffffffffffffffffffff1690506000604051905084811115612a3c5760206060fd5b8285848460045afa50612647612a51876124e7565b64ffffffffff168685612491565b60006020612a856020612a7185611f29565b6bffffffffffffffffffffffff169061241f565b81612a8c57fe5b0492915050565b6000612aa560048360ff16901c612d24565b60ff161760081b62ffff0016612aba82612d24565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612ae282611f29565b612aeb83612ac3565b016bffffffffffffffffffffffff169050919050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660208061274b565b60606000612b3e866124ed565b9150506000612b4c866124ed565b9150506000612b5a866124ed565b9150506000612b68866124ed565b915050838383836040516020018080613827603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161374b82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612ce0826124e7565b64ffffffffff1664ffffffffff1415612cfb5750600061157b565b6000612d0683612ad7565b60405110199392505050565b6000612d1d82612e90565b1592915050565b600060f08083179060ff82161415612d4057603091505061157b565b8060ff1660f11415612d5657603191505061157b565b8060ff1660f21415612d6c57603291505061157b565b8060ff1660f31415612d8257603391505061157b565b8060ff1660f41415612d9857603491505061157b565b8060ff1660f51415612dae57603591505061157b565b8060ff1660f61415612dc457603691505061157b565b8060ff1660f71415612dda57603791505061157b565b8060ff1660f81415612df057603891505061157b565b8060ff1660f91415612e0657603991505061157b565b8060ff1660fa1415612e1c57606191505061157b565b8060ff1660fb1415612e3257606291505061157b565b8060ff1660fc1415612e4857606391505061157b565b8060ff1660fd1415612e5e57606491505061157b565b8060ff1660fe1415612e7457606591505061157b565b8060ff1660ff1415612e8a57606691505061157b565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612ee1578182fd5b50813567ffffffffffffffff811115612ef8578182fd5b6020830191508360208083028501011115612f1257600080fd5b9250929050565b600082601f830112612f29578081fd5b813567ffffffffffffffff811115612f3d57fe5b612f6e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161365a565b818152846020838601011115612f82578283fd5b816020850160208301379081016020019190915292915050565b600060408284031215612fad578081fd5b6040516040810167ffffffffffffffff8282108183111715612fcb57fe5b81604052829350843583526020850135915080821115612fea57600080fd5b50612ff785828601612f19565b6020830152505092915050565b600060208284031215613015578081fd5b813561135a81613716565b60008060408385031215613032578081fd5b823561303d81613716565b9150602083013561304d81613716565b809150509250929050565b6000806020838503121561306a578182fd5b823567ffffffffffffffff811115613080578283fd5b61308c85828601612ed0565b90969095509350505050565b6000602082840312156130a9578081fd5b8151801515811461135a578182fd5b6000602082840312156130c9578081fd5b815161135a81613716565b6000602082840312156130e5578081fd5b5035919050565b6000602082840312156130fd578081fd5b813561135a81613738565b600060208284031215613119578081fd5b815161135a81613738565b60008060408385031215613136578182fd5b823561303d81613738565b600080600060408486031215613155578081fd5b833561316081613738565b9250602084013567ffffffffffffffff81111561317b578182fd5b61318786828701612ed0565b9497909650939450505050565b600080604083850312156131a6578182fd5b82356131b181613738565b946020939093013593505050565b6000806000606084860312156131d3578283fd5b83356131de81613738565b925060208401359150604084013567ffffffffffffffff811115613200578182fd5b61320c86828701612f19565b9150509250925092565b6005811061322057fe5b60f81b9052565b600084825283602083015282516132458160408501602087016136ea565b91909101604001949350505050565b600082516132668184602087016136ea565b9190910192915050565b600061327c8284613216565b50600101919050565b60006132918286613216565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff851682528360208301526060604083015282518060608401526135dc8160808501602087016136ea565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613266578182fd5b60405181810167ffffffffffffffff8111828210171561367657fe5b604052919050565b600067ffffffffffffffff83111561369257fe5b60206136a1818286020161365a565b8481528181019084845b878110156136d2576136c03683358901612f9c565b845292840192908401906001016136ab565b50909695505050505050565b600061135d3683612f9c565b60005b838110156137055781810151838201526020016136ed565b8381111561107c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611ddc57600080fd5b63ffffffff81168114611ddc57600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212204b2a271f15f2fba90557dcd017a178174cf420a5ba884bb294ce5a9f4a867f3564736f6c63430007060033"; + "0x60c06040523480156200001157600080fd5b506040516200398638038062003986833981016040819052620000349162000050565b60e09190911b6001600160e01b03191660805260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a0516138c4620000c2600039806104a45280610f6352508061081d528061088e5280610f875280611ad852506138c46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806356d5d475116100d8578063db2021ae1161008c578063e6b3d94911610066578063e6b3d949146102a1578063e8c6f83a146102b4578063f05151df146102c757610177565b8063db2021ae1461027e578063de314b1914610291578063e54292981461029957610177565b806366cf8fab116100bd57806366cf8fab1461025b578063670a43c41461026e5780638d3638f41461027657610177565b806356d5d4751461024057806363706be31461025357610177565b806341bdc8b51161012f578063485cc95511610114578063485cc955146102055780634fedbbb5146102185780635585416c1461022b57610177565b806341bdc8b5146101df5780634626abee146101f257610177565b80632ead72f6116101605780632ead72f6146101af578063316c92b6146101cf5780633339df96146101d757610177565b80630c340a241461017c5780630ce219951461019a575b600080fd5b6101846102dc565b604051610191919061332f565b60405180910390f35b6101ad6101a83660046131c7565b6102f8565b005b6101c26101bd36600461311f565b6103c2565b604051610191919061335b565b6101ad6103d4565b610184610522565b6101ad6101ed366004613037565b61053e565b6101ad61020036600461308b565b610638565b6101ad610213366004613053565b610733565b6101ad610226366004613174565b6109c5565b610233610b8d565b60405161019191906135cd565b6101ad61024e3660046131f2565b610bb1565b6101ad610e44565b610233610269366004613107565b610f27565b6101c2610f61565b610233610f85565b6101ad61028c366004613157565b610fa9565b610184611082565b6101c261109e565b6101ad6102af366004613037565b6110a4565b6101ad6102c23660046131c7565b611183565b6102cf611234565b6040516101919190613350565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610300611234565b6103635760035473ffffffffffffffffffffffffffffffffffffffff16331461035e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b60405180910390fd5b6103b4565b60025473ffffffffffffffffffffffffffffffffffffffff1633146103b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b6103be8282611255565b5050565b60056020526000908152604090205481565b6103dc611234565b15610413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613483565b60025473ffffffffffffffffffffffffffffffffffffffff163314610464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b6001541561049e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134ba565b6104c8427f00000000000000000000000000000000000000000000000000000000000000006112e6565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae22591610518919061335b565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610546611234565b6105a05760035473ffffffffffffffffffffffffffffffffffffffff16331461059b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b6105f1565b60025473ffffffffffffffffffffffffffffffffffffffff1633146105f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610640611234565b61069a5760035473ffffffffffffffffffffffffffffffffffffffff163314610695576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b6106eb565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b60005b8181101561072e5761072583838381811061070557fe5b9050602002810190610717919061365a565b61072090613711565b611363565b506001016106ee565b505050565b600054610100900460ff168061074c575061074c611426565b8061075a575060005460ff16155b6107af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061379f602e913960400191505060405180910390fd5b600054610100900460ff1615801561081557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b3360016108437f00000000000000000000000000000000000000000000000000000000000000008383611437565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905561088c8561053e565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561091b57600080fd5b505afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061313b565b63ffffffff1614610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613417565b5050801561072e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b610a1e611234565b15610a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613483565b6000610a6084611561565b90506000610a76610a7184866136b1565b6115b3565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ae057600080fd5b505afa158015610af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1891906130eb565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610b54939291906135de565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c069133910161332f565b60206040518083038186803b158015610c1e57600080fd5b505afa158015610c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5691906130cb565b610c8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103559061344c565b8282610c988282611788565b610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133e0565b6000610cda84826117d5565b9050610d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166117f9565b15610d4457610d3f610d3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611854565b6118a2565b610e3c565b610d6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821661193b565b15610da757610d3f610da27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611999565b6119b3565b610dd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a3e565b15610e0a57610d3f610e057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a47565b611a61565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613596565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b600154610ece576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613372565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610f1d9173ffffffffffffffffffffffffffffffffffffffff9091169061332f565b60405180910390a1565b60068181548110610f3757600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b611002611234565b15611039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613483565b600061104483611ad6565b9050611051838383611437565b801561105d57506103be565b60006110718461106c85611b05565b611b1e565b905061107c81611b4b565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff1633146110f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613528565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146111d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906133a9565b6111dc611234565b15611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590613483565b61121d8282611255565b60006112298383611d43565b905061072e81611b4b565b60015460009080158015904283111590829061124d5750805b935050505090565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906112a19084908690613364565b60405180910390a2816112bd576112b783611d6b565b506103be565b806112cb576112cb83611e12565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561135a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006113748360000151611e72565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516113a19190613287565b6000604051808303816000865af19150503d80600081146113de576040519150601f19603f3d011682016040523d82523d6000602084013e6113e3565b606091505b50935090508061141f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610355906134f1565b5050919050565b600061143130611e75565b15905090565b806114475761144583611561565b505b600081611455576000611457565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa916114c99174010000000000000000000000000000000000000000900463ffffffff16908990613643565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff8116600090815260056020526040902054806115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103559061355f565b919050565b805160609060006002820167ffffffffffffffff811180156115d457600080fd5b506040519080825280602002602001820160405280156115fe578160200160208202803683370190505b50905061164c6000600160405160200161161891906132a3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906117d5565b8160008151811061165957fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910182015260405161169f91600091611618918691016132ff565b816001815181106116ac57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b828110156117765760008582815181106116f657fe5b6020026020010151905060006117296000836000015184602001515185602001516040516020016116189392919061325a565b90508084600285018151811061173b57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016116e0565b5061178081611e7b565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561135a57505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016117f064ffffffffff85168284611ecb565b95945050505050565b6000600161180683611f2c565b60ff1614801561135d5750604061183e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f5c565b6bffffffffffffffffffffffff16101592915050565b600061185f826117f9565b1561189a5761189360015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611f70565b90506115ae565b61135d611f96565b8060016118d3815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690611fba565b5060006119017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661213a565b905060005b81518110156119345761192b82828151811061191e57fe5b6020026020010151611363565b50600101611906565b5050505050565b600060025b60ff1661194c83611f2c565b60ff1614801561135d575060256119847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611f5c565b6bffffffffffffffffffffffff161492915050565b60006119a48261193b565b1561189a57611893600261186a565b8060026119bf816118aa565b5060006119ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166122dd565b90506000611a24611a1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871661230e565b611e72565b90506000611a3183611ad6565b9050610e3c838383611437565b60006003611940565b6000611a5282611a3e565b1561189a57611893600361186a565b806003611a6d816118aa565b506000611a9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166122dd565b90506000611aca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861661230e565b90506119348282611255565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b73ffffffffffffffffffffffffffffffffffffffff1690565b606061135a611b46611b41600060028787604051602001611618939291906132b8565b61233f565b612374565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bb557600080fd5b505afa158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed91906130eb565b905060005b60065481101561072e57600063ffffffff1660068281548110611c1157fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d3b578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611c6357fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611c9a57fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d0893928991016135de565b600060405180830381600087803b158015611d2257600080fd5b505af1158015611d36573d6000803e3d6000fd5b505050505b600101611bf2565b606061135a611b46611d66600060038787604051602001611618939291906132b8565b6123b8565b63ffffffff811660009081526005602052604081208190555b6006548110156103be578163ffffffff1660068281548110611da257fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611e075760068181548110611dd957fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611e0f565b600101611d84565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611e9084602084016123c6565b90506000611e9d82611f5c565b6bffffffffffffffffffffffff1690506000611eb88361243e565b9184525082016020016040525092915050565b600080611ed88484612452565b9050604051811115611ee8575060005b80611f16577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611f25565b611f218585856124c4565b9150505b9392505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016124d7565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000611fc683836124f8565b612133576000611fe4611fd88561251a565b64ffffffffff16612520565b9150506000611ff98464ffffffffff16612520565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156120f85781810151838201526020016120e0565b50505050905090810190601f1680156121255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b6060600061216c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806124d7565b905060006121dd6002806121a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611f5c565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906125f4565b905060008260ff1667ffffffffffffffff811180156121fb57600080fd5b5060405190808252806020026020018201604052801561223557816020015b612222612eeb565b81526020019060019003908161221a5790505b50905060005b60006122687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611f5c565b6bffffffffffffffffffffffff1611156122d45761228583612684565b82828151811061229157fe5b6020908102919091010151526122a6836126b4565b8282815181106122b257fe5b6020026020010151602001819052506122ca836126f3565b925060010161223b565b50949350505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046124d7565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166005602061277e565b600061135d61234d83611999565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166128ec565b606060008061238284611f5c565b6bffffffffffffffffffffffff16905060405191508192506123a78483602001612966565b508181016020016040529052919050565b600061135d61234d83611a47565b6000604051828111156123d95760206060fd5b506000805b84518110156124315760008582815181106123f557fe5b6020026020010151905061240b81848701612966565b5061241581611f5c565b6bffffffffffffffffffffffff169290920191506001016123de565b50611780600084836124c4565b600061244982612a92565b60200292915050565b8181018281101561135d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166124ee85858561277e565b901c949350505050565b60008164ffffffffff1661250b8461251a565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156125885760ff600882021684901c61254581612ac6565b61ffff16841793508160ff1660101461256057601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612526565b50600f5b60ff8160ff1610156125ee5760ff600882021684901c6125ab81612ac6565b61ffff16831792508160ff166000146125c657601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161258c565b50915091565b60008061260086612af6565b6bffffffffffffffffffffffff16905061261986612b0a565b61262d856126278489612452565b90612452565b111561265c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611780565b6126668186612452565b905061267a8364ffffffffff168286611ecb565b9695505050505050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682602061277e565b606061135d611b4660406126c785612b34565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046125f4565b6000816001612701816118aa565b50600061270d85612b34565b60400190506117f081806127427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611f5c565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906125f4565b600060ff821661279057506000611f25565b61279984611f5c565b6bffffffffffffffffffffffff166127b48460ff8516612452565b1115612856576127f56127c685612af6565b6bffffffffffffffffffffffff166127dd86611f5c565b6bffffffffffffffffffffffff16858560ff16612b64565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156120f85781810151838201526020016120e0565b60208260ff1611156128b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806137cd603a913960400191505060405180910390fd5b6008820260006128c286612af6565b6bffffffffffffffffffffffff16905060006128dd83612cbf565b91909501511695945050505050565b60006128f782612d08565b61296257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b600061297183612d45565b6129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806138076028913960400191505060405180910390fd5b6129cf83612d08565b612a24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061382f602b913960400191505060405180910390fd5b6000612a2f84611f5c565b6bffffffffffffffffffffffff1690506000612a4a85612af6565b6bffffffffffffffffffffffff1690506000604051905084811115612a6f5760206060fd5b8285848460045afa5061267a612a848761251a565b64ffffffffff1686856124c4565b60006020612ab86020612aa485611f5c565b6bffffffffffffffffffffffff1690612452565b81612abf57fe5b0492915050565b6000612ad860048360ff16901c612d57565b60ff161760081b62ffff0016612aed82612d57565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612b1582611f5c565b612b1e83612af6565b016bffffffffffffffffffffffff169050919050565b600061135d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660208061277e565b60606000612b7186612520565b9150506000612b7f86612520565b9150506000612b8d86612520565b9150506000612b9b86612520565b91505083838383604051602001808061385a603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161377e82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612d138261251a565b64ffffffffff1664ffffffffff1415612d2e575060006115ae565b6000612d3983612b0a565b60405110199392505050565b6000612d5082612ec3565b1592915050565b600060f08083179060ff82161415612d735760309150506115ae565b8060ff1660f11415612d895760319150506115ae565b8060ff1660f21415612d9f5760329150506115ae565b8060ff1660f31415612db55760339150506115ae565b8060ff1660f41415612dcb5760349150506115ae565b8060ff1660f51415612de15760359150506115ae565b8060ff1660f61415612df75760369150506115ae565b8060ff1660f71415612e0d5760379150506115ae565b8060ff1660f81415612e235760389150506115ae565b8060ff1660f91415612e395760399150506115ae565b8060ff1660fa1415612e4f5760619150506115ae565b8060ff1660fb1415612e655760629150506115ae565b8060ff1660fc1415612e7b5760639150506115ae565b8060ff1660fd1415612e915760649150506115ae565b8060ff1660fe1415612ea75760659150506115ae565b8060ff1660ff1415612ebd5760669150506115ae565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612f14578182fd5b50813567ffffffffffffffff811115612f2b578182fd5b6020830191508360208083028501011115612f4557600080fd5b9250929050565b600082601f830112612f5c578081fd5b813567ffffffffffffffff811115612f7057fe5b612fa160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161368d565b818152846020838601011115612fb5578283fd5b816020850160208301379081016020019190915292915050565b600060408284031215612fe0578081fd5b6040516040810167ffffffffffffffff8282108183111715612ffe57fe5b8160405282935084358352602085013591508082111561301d57600080fd5b5061302a85828601612f4c565b6020830152505092915050565b600060208284031215613048578081fd5b813561135a81613749565b60008060408385031215613065578081fd5b823561307081613749565b9150602083013561308081613749565b809150509250929050565b6000806020838503121561309d578182fd5b823567ffffffffffffffff8111156130b3578283fd5b6130bf85828601612f03565b90969095509350505050565b6000602082840312156130dc578081fd5b8151801515811461135a578182fd5b6000602082840312156130fc578081fd5b815161135a81613749565b600060208284031215613118578081fd5b5035919050565b600060208284031215613130578081fd5b813561135a8161376b565b60006020828403121561314c578081fd5b815161135a8161376b565b60008060408385031215613169578182fd5b82356130708161376b565b600080600060408486031215613188578081fd5b83356131938161376b565b9250602084013567ffffffffffffffff8111156131ae578182fd5b6131ba86828701612f03565b9497909650939450505050565b600080604083850312156131d9578182fd5b82356131e48161376b565b946020939093013593505050565b600080600060608486031215613206578283fd5b83356132118161376b565b925060208401359150604084013567ffffffffffffffff811115613233578182fd5b61323f86828701612f4c565b9150509250925092565b6005811061325357fe5b60f81b9052565b6000848252836020830152825161327881604085016020870161371d565b91909101604001949350505050565b6000825161329981846020870161371d565b9190910192915050565b60006132af8284613249565b50600101919050565b60006132c48286613249565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff8516825283602083015260606040830152825180606084015261360f81608085016020870161371d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613299578182fd5b60405181810167ffffffffffffffff811182821017156136a957fe5b604052919050565b600067ffffffffffffffff8311156136c557fe5b60206136d4818286020161368d565b8481528181019084845b87811015613705576136f33683358901612fcf565b845292840192908401906001016136de565b50909695505050505050565b600061135d3683612fcf565b60005b83811015613738578181015183820152602001613720565b8381111561107c5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611e0f57600080fd5b63ffffffff81168114611e0f57600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212206fb3e3a9c63f03bbf2950b36ceb1777f03bf103c63ccbe49b15e97f705c37a4764736f6c63430007060033"; export class GovernanceRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/Home__factory.ts b/typescript/typechain/optics-core/factories/Home__factory.ts index 9dba78291..b11e0d1a4 100644 --- a/typescript/typechain/optics-core/factories/Home__factory.ts +++ b/typescript/typechain/optics-core/factories/Home__factory.ts @@ -28,6 +28,12 @@ const _abi = [ { anonymous: false, inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, { indexed: true, internalType: "uint256", @@ -37,19 +43,13 @@ const _abi = [ { indexed: true, internalType: "uint64", - name: "destinationAndSequence", + name: "destinationAndNonce", type: "uint64", }, - { - indexed: true, - internalType: "bytes32", - name: "leaf", - type: "bytes32", - }, { indexed: false, internalType: "bytes32", - name: "current", + name: "committedRoot", type: "bytes32", }, { @@ -228,12 +228,12 @@ const _abi = [ }, { inputs: [], - name: "count", + name: "committedRoot", outputs: [ { - internalType: "uint256", + internalType: "bytes32", name: "", - type: "uint256", + type: "bytes32", }, ], stateMutability: "view", @@ -241,12 +241,12 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "count", outputs: [ { - internalType: "bytes32", + internalType: "uint256", name: "", - type: "bytes32", + type: "uint256", }, ], stateMutability: "view", @@ -255,50 +255,50 @@ const _abi = [ { inputs: [ { - internalType: "bytes32", - name: "_oldRoot", - type: "bytes32", - }, - { - internalType: "bytes32[2]", - name: "_newRoot", - type: "bytes32[2]", + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", }, { - internalType: "bytes", - name: "_signature", - type: "bytes", + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", }, { internalType: "bytes", - name: "_signature2", + name: "_messageBody", type: "bytes", }, ], - name: "doubleUpdate", + name: "dispatch", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ - { - internalType: "uint32", - name: "_destinationDomain", - type: "uint32", - }, { internalType: "bytes32", - name: "_recipientAddress", + name: "_oldRoot", type: "bytes32", }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, { internalType: "bytes", - name: "_messageBody", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", type: "bytes", }, ], - name: "enqueue", + name: "doubleUpdate", outputs: [], stateMutability: "nonpayable", type: "function", @@ -371,6 +371,25 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "owner", @@ -449,25 +468,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - name: "sequences", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -513,7 +513,7 @@ const _abi = [ outputs: [ { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -555,7 +555,7 @@ const _abi = [ inputs: [ { internalType: "bytes32", - name: "_currentRoot", + name: "_committedRoot", type: "bytes32", }, { @@ -603,7 +603,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051612f90380380612f908339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f1d610073600039806109775280610abf5280610f9d52806113ee5250612f1d6000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80639d54f419116100ee578063c4d66de811610097578063ebf0c71711610071578063ebf0c7171461066e578063f2fde38b14610676578063f6d16102146106a9578063fd54b228146106b1576101a3565b8063c4d66de81461057b578063d3468639146105ae578063df034cd014610666576101a3565b8063ab91c7b0116100c8578063ab91c7b014610498578063b31c01fb146104a0578063c19d93fb14610552576101a3565b80639d54f419146104555780639df6c8e1146104885780639fa6a6e314610490576101a3565b8063522ae002116101505780638da5cb5b1161012a5780638da5cb5b1461033f5780638e4e30e0146103705780639776120e14610422576101a3565b8063522ae00214610327578063715018a61461032f5780638d3638f414610337576101a3565b80632bef2892116101815780632bef2892146102cd57806336e104de146102fe57806345630b1a1461031f576101a3565b806306661abd146101a857806319d9d21a146101c25780632752e0f414610291575b600080fd5b6101b06106b9565b60408051918252519081900360200190f35b61028f600480360360a08110156101d857600080fd5b81359160208101918101906080810160608201356401000000008111156101fe57600080fd5b82018360208201111561021057600080fd5b8035906020019184600183028401116401000000008311171561023257600080fd5b91939092909160208101903564010000000081111561025057600080fd5b82018360208201111561026257600080fd5b8035906020019184600183028401116401000000008311171561028457600080fd5b5090925090506106bf565b005b6102b4600480360360208110156102a757600080fd5b503563ffffffff1661091c565b6040805163ffffffff9092168252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b5035610935565b604080519115158252519081900360200190f35b610306610948565b6040805192835260208301919091528051918290030190f35b6101b0610970565b6101b06109a0565b61028f6109a6565b6102b4610abd565b610347610ae1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ea6004803603606081101561038657600080fd5b8135916020810135918101906060810160408201356401000000008111156103ad57600080fd5b8201836020820111156103bf57600080fd5b803590602001918460018302840111640100000000831117156103e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610afd945050505050565b61028f6004803603602081101561043857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d50565b61028f6004803603602081101561046b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e04565b610347610e94565b6101b0610eb1565b6101b0610eb7565b61028f600480360360608110156104b657600080fd5b8135916020810135918101906060810160408201356401000000008111156104dd57600080fd5b8201836020820111156104ef57600080fd5b8035906020019184600183028401116401000000008311171561051157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ec3945050505050565b61055a611061565b6040518082600281111561056a57fe5b815260200191505060405180910390f35b61028f6004803603602081101561059157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611082565b61028f600480360360608110156105c457600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156105f157600080fd5b82018360208201111561060357600080fd5b8035906020019184600183028401116401000000008311171561062557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611295945050505050565b61034761150b565b6101b0611527565b61028f6004803603602081101561068c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611533565b6101b06116d5565b6101b06116e1565b60205490565b600260865474010000000000000000000000000000000000000000900460ff1660028111156106ea57fe5b141561075757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261079991889188359188908890819084018382808284376000920191909152506116e792505050565b80156107e857506107e886866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e792505050565b80156107f957508435602086013514155b1561091457610806611779565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b61011b6020526000908152604090205463ffffffff1681565b6000610942605383611855565b92915050565b60008061095560536118c5565b1561096c5760875491506109696053611905565b90505b9091565b600061099b7f0000000000000000000000000000000000000000000000000000000000000000611942565b905090565b61080081565b6109ae6119b7565b73ffffffffffffffffffffffffffffffffffffffff166109cc610ae1565b73ffffffffffffffffffffffffffffffffffffffff1614610a4e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b2a57fe5b1415610b9757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610ba28484846116e7565b610c0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c88605384611855565b610d4557610c94611779565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d01578181015183820152602001610ce9565b50505050905090810190601f168015610d2e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d49565b5060005b9392505050565b610d586119b7565b73ffffffffffffffffffffffffffffffffffffffff16610d76610ae1565b73ffffffffffffffffffffffffffffffffffffffff1614610df857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e01816119bb565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610e8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e0181611aa9565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60875481565b600061099b60536118c5565b600260865474010000000000000000000000000000000000000000900460ff166002811115610eee57fe5b1415610f5b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f66838383610afd565b15610f705761105c565b6000610f7c6053611b22565b905082811415610f8c5750610f92565b50610f70565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611021578181015183820152602001611009565b50505050905090810190601f16801561104e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff168061109b575061109b611c5b565b806110a9575060525460ff16155b6110fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561116457605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61116c611c6c565b611175826119bb565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d602081101561120b57600080fd5b5051905061121881611d8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600260865474010000000000000000000000000000000000000000900460ff1660028111156112c057fe5b141561132d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561139f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556114177f00000000000000000000000000000000000000000000000000000000000000003384888888611f24565b8051602082012090915061142c600082611ffa565b61143f611437611527565b605390612102565b508061144b878561216f565b67ffffffffffffffff16600161145f6106b9565b037f212a0c695ace91176d2e6d1ba9200ae05dbe3e8b58f2b310103eb27777b13504608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114c85781810151838201526020016114b0565b50505050905090810190601f1680156114f55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b600061099b6000612189565b61153b6119b7565b73ffffffffffffffffffffffffffffffffffffffff16611559610ae1565b73ffffffffffffffffffffffffffffffffffffffff16146115db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e506026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600061099b6053611905565b60205481565b6000806116f2610970565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506117338161219c565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661175982856121ed565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611781612287565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156117f457600080fd5b505af1158015611808573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d455760008181526001850160205260409020548314156118bd576001915050610942565b60010161186d565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166118fd82826122c8565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119c4816122e2565b611a2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b5a82826122c8565b611bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c16576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c66306122e2565b15905090565b605254610100900460ff1680611c855750611c85611c5b565b80611c93575060525460ff16155b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d4e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d566122e8565b611d5e6123fa565b8015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611da85750611da8611c5b565b80611db6575060525460ff16155b611e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e7961258a565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b60208310611fb557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f78565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161207057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156120ff5781600116600114156120ac57828482602081106120a257fe5b0155506112919050565b8381602081106120b857fe5b0154836040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250600282816120f457fe5b049150600101612080565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610942576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b600061094282612197612676565b612b37565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461225f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61227d86828585612bf5565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123015750612301611c5b565b8061230f575060525460ff16155b612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d5e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124135750612413611c5b565b80612421575060525460ff16155b612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff161580156124dc57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006124e66119b7565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806125a357506125a3611c5b565b806125b1575060525460ff16155b612606576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561266c57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d5e6053612dec565b61267e612e30565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612bed57600182821c166000868360208110612b5e57fe5b015490508160011415612ba15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612be3565b84868460208110612bae57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612b41565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e766022913960400191505060405180910390fd5b8360ff16601b1480612c8557508360ff16601c145b612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ec66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612d36573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610e015780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212200e2656fda65c0a3512b09fe1701252166c351781fbc93e9c28070e9cb0a727b264736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b50604051612f90380380612f908339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f1d6100736000398061095e5280610aac5280610f8452806115c45250612f1d6000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80639d54f419116100ee578063c4d66de811610097578063f2fde38b11610071578063f2fde38b146105be578063f6d16102146105f1578063fa31de01146105f9578063fd54b228146106b1576101a3565b8063c4d66de81461057b578063df034cd0146105ae578063ebf0c717146105b6576101a3565b8063b31c01fb116100c8578063b31c01fb1461047d578063b95a20011461052f578063c19d93fb14610552576101a3565b80639d54f4191461043a5780639df6c8e11461046d578063ab91c7b014610475576101a3565b806367a6771d116101505780638da5cb5b1161012a5780638da5cb5b146103245780638e4e30e0146103555780639776120e14610407576101a3565b806367a6771d146102f3578063715018a6146102fb5780638d3638f414610303576101a3565b806336e104de1161018157806336e104de146102c257806345630b1a146102e3578063522ae002146102eb576101a3565b806306661abd146101a857806319d9d21a146101c25780632bef289214610291575b600080fd5b6101b06106b9565b60408051918252519081900360200190f35b61028f600480360360a08110156101d857600080fd5b81359160208101918101906080810160608201356401000000008111156101fe57600080fd5b82018360208201111561021057600080fd5b8035906020019184600183028401116401000000008311171561023257600080fd5b91939092909160208101903564010000000081111561025057600080fd5b82018360208201111561026257600080fd5b8035906020019184600183028401116401000000008311171561028457600080fd5b5090925090506106bf565b005b6102ae600480360360208110156102a757600080fd5b503561091c565b604080519115158252519081900360200190f35b6102ca61092f565b6040805192835260208301919091528051918290030190f35b6101b0610957565b6101b0610987565b6101b061098d565b61028f610993565b61030b610aaa565b6040805163ffffffff9092168252519081900360200190f35b61032c610ace565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ae6004803603606081101561036b57600080fd5b81359160208101359181019060608101604082013564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460018302840111640100000000831117156103c657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610aea945050505050565b61028f6004803603602081101561041d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d3d565b61028f6004803603602081101561045057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610df1565b61032c610e81565b6101b0610e9e565b61028f6004803603606081101561049357600080fd5b8135916020810135918101906060810160408201356401000000008111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111640100000000831117156104ee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eaa945050505050565b61030b6004803603602081101561054557600080fd5b503563ffffffff16611048565b61055a611061565b6040518082600281111561056a57fe5b815260200191505060405180910390f35b61028f6004803603602081101561059157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611082565b61032c611295565b6101b06112b1565b61028f600480360360208110156105d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112bd565b6101b061145f565b61028f6004803603606081101561060f57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561063c57600080fd5b82018360208201111561064e57600080fd5b8035906020019184600183028401116401000000008311171561067057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061146b945050505050565b6101b06116e1565b60205490565b600260865474010000000000000000000000000000000000000000900460ff1660028111156106ea57fe5b141561075757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261079991889188359188908890819084018382808284376000920191909152506116e792505050565b80156107e857506107e886866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e792505050565b80156107f957508435602086013514155b1561091457610806611779565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b6000610929605383611855565b92915050565b60008061093c60536118c5565b156109535760875491506109506053611905565b90505b9091565b60006109827f0000000000000000000000000000000000000000000000000000000000000000611942565b905090565b61080081565b60875481565b61099b6119b7565b73ffffffffffffffffffffffffffffffffffffffff166109b9610ace565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b1757fe5b1415610b8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b8f8484846116e7565b610bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c75605384611855565b610d3257610c81611779565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610cee578181015183820152602001610cd6565b50505050905090810190601f168015610d1b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d36565b5060005b9392505050565b610d456119b7565b73ffffffffffffffffffffffffffffffffffffffff16610d63610ace565b73ffffffffffffffffffffffffffffffffffffffff1614610de557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610dee816119bb565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610e7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610dee81611aa9565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b600061098260536118c5565b600260865474010000000000000000000000000000000000000000900460ff166002811115610ed557fe5b1415610f4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f4d838383610aea565b15610f5757611043565b6000610f636053611b22565b905082811415610f735750610f79565b50610f57565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611008578181015183820152602001610ff0565b50505050905090810190601f1680156110355780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff168061109b575061109b611c5b565b806110a9575060525460ff16155b6110fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561116457605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61116c611c6c565b611175826119bb565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d602081101561120b57600080fd5b5051905061121881611d8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109826000611f24565b6112c56119b7565b73ffffffffffffffffffffffffffffffffffffffff166112e3610ace565b73ffffffffffffffffffffffffffffffffffffffff161461136557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166113d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e506026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109826053611905565b600260865474010000000000000000000000000000000000000000900460ff16600281111561149657fe5b141561150357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561157557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556115ed7f00000000000000000000000000000000000000000000000000000000000000003384888888611f37565b8051602082012090915061160260008261200d565b61161561160d6112b1565b605390612115565b506116208684612182565b67ffffffffffffffff1660016116346106b9565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561169e578181015183820152602001611686565b50505050905090810190601f1680156116cb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60205481565b6000806116f2610957565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506117338161219c565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661175982856121ed565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611781612287565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156117f457600080fd5b505af1158015611808573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d325760008181526001850160205260409020548314156118bd576001915050610929565b60010161186d565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166118fd82826122c8565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119c4816122e2565b611a2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b5a82826122c8565b611bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c16576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c66306122e2565b15905090565b605254610100900460ff1680611c855750611c85611c5b565b80611c93575060525460ff16155b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d4e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d566122e8565b611d5e6123fa565b8015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611da85750611da8611c5b565b80611db6575060525460ff16155b611e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e7961258a565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b600061092982611f32612676565b612b37565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b60208310611fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f8b565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161208357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156121125781600116600114156120bf57828482602081106120b557fe5b0155506112919050565b8381602081106120cb57fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161210757fe5b049150600101612093565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610929576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461225f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61227d86828585612bf5565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123015750612301611c5b565b8061230f575060525460ff16155b612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d5e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124135750612413611c5b565b80612421575060525460ff16155b612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff161580156124dc57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006124e66119b7565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806125a357506125a3611c5b565b806125b1575060525460ff16155b612606576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561266c57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d5e6053612dec565b61267e612e30565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612bed57600182821c166000868360208110612b5e57fe5b015490508160011415612ba15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612be3565b84868460208110612bae57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612b41565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e766022913960400191505060405180910390fd5b8360ff16601b1480612c8557508360ff16601c145b612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ec66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612d36573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610dee5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220e18bd5a7270ea8b865e5fe4a43fbd0facd8f061a20d55c694e4e2052e376520064736f6c63430007060033"; export class Home__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/Replica__factory.ts b/typescript/typechain/optics-core/factories/Replica__factory.ts index 5bc1f4457..5ee46bf90 100644 --- a/typescript/typechain/optics-core/factories/Replica__factory.ts +++ b/typescript/typechain/optics-core/factories/Replica__factory.ts @@ -68,7 +68,7 @@ const _abi = [ { indexed: true, internalType: "uint32", - name: "sequence", + name: "nonce", type: "uint32", }, { @@ -189,6 +189,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "confirm", @@ -215,19 +228,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [], - name: "current", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -283,7 +283,7 @@ const _abi = [ }, { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -541,7 +541,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b506040516131e23803806131e28339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661317961006960003980610ce85280610d7e52506131796000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c8063928bc4b2116100e3578063ba739a621161008c578063df034cd011610066578063df034cd0146105e9578063e7e7a7b71461061a578063f6d161021461066557610198565b8063ba739a62146105b8578063c19d93fb146105d9578063d88beda2146105e157610198565b8063a3f81d68116100bd578063a3f81d68146104e1578063ab91c7b0146104fe578063b31c01fb1461050657610198565b8063928bc4b21461042b578063961681dc146104d15780639fa6a6e3146104d957610198565b806339992668116101455780637022b58e1161011f5780637022b58e146103e557806371bfb7b8146103ed5780638d3638f41461040a57610198565b8063399926681461032757806345630b1a1461032f5780636188af0e1461033757610198565b80632bbd59ca116101765780632bbd59ca146102a25780632bef2892146102e0578063371d3071146102fd57610198565b806314cfabb31461019d57806319d9d21a146101b957806325e3beda14610288575b600080fd5b6101a561066d565b604080519115158252519081900360200190f35b610286600480360360a08110156101cf57600080fd5b81359160208101918101906080810160608201356401000000008111156101f557600080fd5b82018360208201111561020757600080fd5b8035906020019184600183028401116401000000008311171561022957600080fd5b91939092909160208101903564010000000081111561024757600080fd5b82018360208201111561025957600080fd5b8035906020019184600183028401116401000000008311171561027b57600080fd5b509092509050610699565b005b6102906108f6565b60408051918252519081900360200190f35b6102bf600480360360208110156102b857600080fd5b50356108fc565b604051808260028111156102cf57fe5b815260200191505060405180910390f35b6101a5600480360360208110156102f657600080fd5b5035610911565b6101a5600480360361044081101561031457600080fd5b5080359060208101906104200135610926565b610290610a46565b610290610a4c565b610286600480360361044081101561034e57600080fd5b81019060208101813564010000000081111561036957600080fd5b82018360208201111561037b57600080fd5b8035906020019184600183028401116401000000008311171561039d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a61565b610286610aed565b6102906004803603602081101561040357600080fd5b5035610cd4565b610412610ce6565b6040805163ffffffff9092168252519081900360200190f35b6101a56004803603602081101561044157600080fd5b81019060208101813564010000000081111561045c57600080fd5b82018360208201111561046e57600080fd5b8035906020019184600183028401116401000000008311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d0a945050505050565b6104126113c2565b6102906113ce565b6101a5600480360360208110156104f757600080fd5b50356113d4565b6102906113fb565b6102866004803603606081101561051c57600080fd5b81359160208101359181019060608101604082013564010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611407945050505050565b6105c06116eb565b6040805192835260208301919091528051918290030190f35b6102bf611739565b61029061175a565b6105f1611761565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102866004803603608081101561063057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561177d565b610290611916565b60006106796001611922565b15801590610694575061069461068f6001611962565b6113d4565b905090565b600260345474010000000000000000000000000000000000000000900460ff1660028111156106c457fe5b141561073157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107739188918835918890889081908401838280828437600092019190915250611a0392505050565b80156107c257506107c286866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0392505050565b80156107d357508435602086013514155b156108ee576107e0611a95565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b600061091e600183611a9f565b90505b919050565b60008060008581526069602052604090205460ff16600281111561094657fe5b146109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109e8858560208060200260405190810160405280929190826020800280828437600092019190915250879150611b1b9050565b90506109f3816113d4565b15610a39575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a3f565b60009150505b9392505050565b60665481565b6065546000906106949063ffffffff16611bc6565b610a7383805190602001208383610926565b610ade57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae783610d0a565b50505050565b600260345474010000000000000000000000000000000000000000900460ff166002811115610b1857fe5b1415610b8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b8f6001611922565b610bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610c076001611922565b90505b600081118015610c225750610c2261068f6001611962565b15610c5a57610c316001611c3b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610c0a565b81610cc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cce611a9d565b50603555565b60676020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610d178382611d74565b90506000610d467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611d98565b90506000610d757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611dd7565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610dc97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e08565b63ffffffff1614610e3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160008381526069602052604090205460ff166002811115610e5a57fe5b14610ec657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60685460ff16600114610f3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600083815260696020526040902080549091166002179055620d32e85a1015610ff157604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061101e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e39565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf8506110687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611e4c565b6110937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611e7c565b6110e86110c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008b16611ead565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611f1e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561113a578181015183820152602001611122565b50505050905090810190601f1680156111675780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b6020831061122f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111f2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611292576040519150601f19603f3d011682016040523d82523d6000602084013e611297565b606091505b50909650905085156112d35760405184907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a261138c565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff16857fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611351578181015183820152602001611339565b50505050905090810190601f16801561137e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550919392505050565b60655463ffffffff1681565b60355481565b600081815260676020526040812054806113f2576000915050610921565b42101592915050565b60006106946001611922565b600260345474010000000000000000000000000000000000000000900460ff16600281111561143257fe5b141561149f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006114ab6001611922565b111561152d576114bb6001611f62565b831461152857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b61159d565b826035541461159d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6115a8838383611a03565b61161357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61161b611a9d565b606654600083815260676020526040902042909101905561163d600183611f9f565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b838110156116ac578181015183820152602001611694565b50505050905090810190601f1680156116d95780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000806116f86001611922565b15611720576117076001611962565b6000818152606760205260409020549092509050611735565b50506035546000818152606760205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff1680611796575061179661200c565b806117a4575060005460ff16155b6117f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff1615801561185f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6118688461201d565b6068805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905560358490556000848152606760205260409020556066829055801561190f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006106946001611f62565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661195a82826121b3565b949350505050565b600061196d826121cd565b156119d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611a0e610a4c565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611a4f816121fc565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611a75828561224d565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611a9d6122e7565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611b0f576000818152600185016020526040902054831415611b07576001915050611b15565b600101611ab7565b50600090505b92915050565b8260005b6020811015611bbe57600183821c166000858360208110611b3c57fe5b602002015190508160011415611b825780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611bb4565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611b1f565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c7382826121b3565b611cde57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d2f576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b815160009060208401611d8f64ffffffffff85168284612328565b95945050505050565b600080611da48361237e565b6bffffffffffffffffffffffff1690506000611dbf84612392565b6bffffffffffffffffffffffff169091209392505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602460046123a6565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602860046123a6565b600061091e611e47836123c7565b6123f8565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260046123a6565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123fb565b600061091e604c80611ee07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612392565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff919091160360006125a6565b6060600080611f2c84612392565b6bffffffffffffffffffffffff1690506040519150819250611f51848360200161262c565b508181016020016040529052919050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611b15576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061201730612758565b15905090565b600054610100900460ff1680612036575061203661200c565b80612044575060005460ff16155b612099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff161580156120ff57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61210761275e565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156121af57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122dd8682858561287c565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b6000806123358484612a6a565b9050604051811115612345575060005b80612373577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a3f565b611d8f858585612adc565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166123bd8585856123fb565b901c949350505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123fb565b90565b600060ff821661240d57506000610a3f565b61241684612392565b6bffffffffffffffffffffffff166124318460ff8516612a6a565b1115612510576124726124438561237e565b6bffffffffffffffffffffffff1661245a86612392565b6bffffffffffffffffffffffff16858560ff16612aef565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124d55781810151838201526020016124bd565b50505050905090810190601f1680156125025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff16111561256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613082603a913960400191505060405180910390fd5b60088202600061257c8661237e565b6bffffffffffffffffffffffff169050600061259783612c4a565b91909501511695945050505050565b6000806125b28661237e565b6bffffffffffffffffffffffff1690506125cb86612c93565b6125df856125d98489612a6a565b90612a6a565b111561260e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061195a565b6126188186612a6a565b90506122dd8364ffffffffff168286612328565b600061263783612cbd565b61268c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130bc6028913960400191505060405180910390fd5b61269583612ccf565b6126ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806130e4602b913960400191505060405180910390fd5b60006126f584612392565b6bffffffffffffffffffffffff16905060006127108561237e565b6bffffffffffffffffffffffff16905060006040519050848111156127355760206060fd5b8285848460045afa506122dd61274a87612d0c565b64ffffffffff168685612adc565b3b151590565b600054610100900460ff1680612777575061277761200c565b80612785575060005460ff16155b6127da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff1615801561284057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61284a6001612d12565b801561287957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156128f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fef6022913960400191505060405180910390fd5b8360ff16601b148061290c57508360ff16601c145b612961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130606022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156129bd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611d8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611b1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612afc86612d56565b9150506000612b0a86612d56565b9150506000612b1886612d56565b9150506000612b2686612d56565b91505083838383604051602001808061310f603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161301182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612c9e82612392565b612ca78361237e565b016bffffffffffffffffffffffff169050919050565b6000612cc882612e2a565b1592915050565b6000612cda82612d0c565b64ffffffffff1664ffffffffff1415612cf557506000610921565b6000612d0083612c93565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff166128795780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff161115612dbe5760ff600882021684901c612d7b81612e52565b61ffff16841793508160ff16601014612d9657601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612d5c565b50600f5b60ff8160ff161015612e245760ff600882021684901c612de181612e52565b61ffff16831792508160ff16600014612dfc57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612dc2565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612e6460048360ff16901c612e82565b60ff161760081b62ffff0016612e7982612e82565b60ff1617919050565b600060f08083179060ff82161415612e9e576030915050610921565b8060ff1660f11415612eb4576031915050610921565b8060ff1660f21415612eca576032915050610921565b8060ff1660f31415612ee0576033915050610921565b8060ff1660f41415612ef6576034915050610921565b8060ff1660f51415612f0c576035915050610921565b8060ff1660f61415612f22576036915050610921565b8060ff1660f71415612f38576037915050610921565b8060ff1660f81415612f4e576038915050610921565b8060ff1660f91415612f64576039915050610921565b8060ff1660fa1415612f7a576061915050610921565b8060ff1660fb1415612f90576062915050610921565b8060ff1660fc1415612fa6576063915050610921565b8060ff1660fd1415612fbc576064915050610921565b8060ff1660fe1415612fd2576065915050610921565b8060ff1660ff1415612fe8576066915050610921565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220b997f442025f388c19d3456d0668f22276282ab54bc5aa3d9290a8ffdd154cac64736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b506040516131dc3803806131dc8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661317361006960003980610cee5280610d2652506131736000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638d3638f4116100e3578063ba739a621161008c578063df034cd011610066578063df034cd0146105e9578063e7e7a7b71461061a578063f6d161021461066557610198565b8063ba739a62146105b8578063c19d93fb146105d9578063d88beda2146105e157610198565b8063a3f81d68116100bd578063a3f81d68146104e1578063ab91c7b0146104fe578063b31c01fb1461050657610198565b80638d3638f414610412578063928bc4b214610433578063961681dc146104d957610198565b8063399926681161014557806367a6771d1161011f57806367a6771d146103e55780637022b58e146103ed57806371bfb7b8146103f557610198565b8063399926681461032757806345630b1a1461032f5780636188af0e1461033757610198565b80632bbd59ca116101765780632bbd59ca146102a25780632bef2892146102e0578063371d3071146102fd57610198565b806314cfabb31461019d57806319d9d21a146101b957806325e3beda14610288575b600080fd5b6101a561066d565b604080519115158252519081900360200190f35b610286600480360360a08110156101cf57600080fd5b81359160208101918101906080810160608201356401000000008111156101f557600080fd5b82018360208201111561020757600080fd5b8035906020019184600183028401116401000000008311171561022957600080fd5b91939092909160208101903564010000000081111561024757600080fd5b82018360208201111561025957600080fd5b8035906020019184600183028401116401000000008311171561027b57600080fd5b509092509050610699565b005b6102906108f6565b60408051918252519081900360200190f35b6102bf600480360360208110156102b857600080fd5b50356108fc565b604051808260028111156102cf57fe5b815260200191505060405180910390f35b6101a5600480360360208110156102f657600080fd5b5035610911565b6101a5600480360361044081101561031457600080fd5b5080359060208101906104200135610926565b610290610a46565b610290610a4c565b610286600480360361044081101561034e57600080fd5b81019060208101813564010000000081111561036957600080fd5b82018360208201111561037b57600080fd5b8035906020019184600183028401116401000000008311171561039d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a61565b610290610aed565b610286610af3565b6102906004803603602081101561040b57600080fd5b5035610cda565b61041a610cec565b6040805163ffffffff9092168252519081900360200190f35b6101a56004803603602081101561044957600080fd5b81019060208101813564010000000081111561046457600080fd5b82018360208201111561047657600080fd5b8035906020019184600183028401116401000000008311171561049857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d10945050505050565b61041a6113c2565b6101a5600480360360208110156104f757600080fd5b50356113ce565b6102906113f5565b6102866004803603606081101561051c57600080fd5b81359160208101359181019060608101604082013564010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611401945050505050565b6105c06116e5565b6040805192835260208301919091528051918290030190f35b6102bf611733565b610290611754565b6105f161175b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102866004803603608081101561063057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff6020820135169060408101359060600135611777565b610290611910565b6000610679600161191c565b15801590610694575061069461068f600161195c565b6113ce565b905090565b600260345474010000000000000000000000000000000000000000900460ff1660028111156106c457fe5b141561073157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261077391889188359188908890819084018382808284376000920191909152506119fd92505050565b80156107c257506107c286866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119fd92505050565b80156107d357508435602086013514155b156108ee576107e0611a8f565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b600061091e600183611a99565b90505b919050565b60008060008581526069602052604090205460ff16600281111561094657fe5b146109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109e8858560208060200260405190810160405280929190826020800280828437600092019190915250879150611b159050565b90506109f3816113ce565b15610a39575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a3f565b60009150505b9392505050565b60665481565b6065546000906106949063ffffffff16611bc0565b610a7383805190602001208383610926565b610ade57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae783610d10565b50505050565b60355481565b600260345474010000000000000000000000000000000000000000900460ff166002811115610b1e57fe5b1415610b8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b95600161191c565b610c0057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610c0d600161191c565b90505b600081118015610c285750610c2861068f600161195c565b15610c6057610c376001611c35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610c10565b81610ccc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cd4611a97565b50603555565b60686020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610d1d8382611d6e565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610d717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611d92565b63ffffffff1614610de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611dc3565b9050600160008281526069602052604090205460ff166002811115610e3157fe5b14610e9d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60675460ff16600114610f1157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600082815260696020526040902080549091166002179055620d32e85a1015610fc857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610ff57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611e02565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf85061103f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716611e15565b61106a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611e45565b6110bf6110987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611e76565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611ee7565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111115781810151838201526020016110f9565b50505050905090810190601f16801561113e5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b6020831061120657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111c9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611269576040519150601f19603f3d011682016040523d82523d6000602084013e61126e565b606091505b50909550905084156112aa5760405183907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a261138d565b73ffffffffffffffffffffffffffffffffffffffff82166112ec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616611f2b565b63ffffffff16847fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561135257818101518382015260200161133a565b50505050905090810190601f16801561137f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509092915050565b60655463ffffffff1681565b600081815260686020526040812054806113ec576000915050610921565b42101592915050565b6000610694600161191c565b600260345474010000000000000000000000000000000000000000900460ff16600281111561142c57fe5b141561149957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006114a5600161191c565b1115611527576114b56001611f5c565b831461152257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b611597565b603554831461159757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6115a28383836119fd565b61160d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b611615611a97565b6066546000838152606860205260409020429091019055611637600183611f99565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b838110156116a657818101518382015260200161168e565b50505050905090810190601f1680156116d35780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000806116f2600161191c565b1561171a57611701600161195c565b600081815260686020526040902054909250905061172f565b50506035546000818152606860205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806117905750611790612006565b8061179e575060005460ff16155b6117f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff1615801561185957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61186284612017565b6067805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905560358490556000848152606860205260409020556066829055801561190957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006106946001611f5c565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661195482826121ad565b949350505050565b6000611967826121c7565b156119d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611a08610a4c565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611a49816121f6565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611a6f8285612247565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611a976122e1565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611b09576000818152600185016020526040902054831415611b01576001915050611b0f565b600101611ab1565b50600090505b92915050565b8260005b6020811015611bb857600183821c166000858360208110611b3657fe5b602002015190508160011415611b7c5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611bae565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611b19565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c6d82826121ad565b611cd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d29576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b815160009060208401611d8964ffffffffff85168284612322565b95945050505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612378565b600080611dcf83612399565b6bffffffffffffffffffffffff1690506000611dea846123ad565b6bffffffffffffffffffffffff169091209392505050565b600061091e611e10836123c1565b6123f2565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612378565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123f5565b600061091e604c80611ea97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166123ad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff919091160360006125a0565b6060600080611ef5846123ad565b6bffffffffffffffffffffffff1690506040519150819250611f1a8483602001612626565b508181016020016040529052919050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004612378565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611b0f576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061201130612752565b15905090565b600054610100900460ff16806120305750612030612006565b8061203e575060005460ff16155b612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff161580156120f957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612101612758565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156121a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122d786828585612876565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60008061232f8484612a64565b905060405181111561233f575060005b8061236d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a3f565b611d89858585612ad6565b60008160200360080260ff1661238f8585856123f5565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123f5565b90565b600060ff821661240757506000610a3f565b612410846123ad565b6bffffffffffffffffffffffff1661242b8460ff8516612a64565b111561250a5761246c61243d85612399565b6bffffffffffffffffffffffff16612454866123ad565b6bffffffffffffffffffffffff16858560ff16612ae9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124cf5781810151838201526020016124b7565b50505050905090810190601f1680156124fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061307c603a913960400191505060405180910390fd5b60088202600061257686612399565b6bffffffffffffffffffffffff169050600061259183612c44565b91909501511695945050505050565b6000806125ac86612399565b6bffffffffffffffffffffffff1690506125c586612c8d565b6125d9856125d38489612a64565b90612a64565b1115612608577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611954565b6126128186612a64565b90506122d78364ffffffffff168286612322565b600061263183612cb7565b612686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b66028913960400191505060405180910390fd5b61268f83612cc9565b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806130de602b913960400191505060405180910390fd5b60006126ef846123ad565b6bffffffffffffffffffffffff169050600061270a85612399565b6bffffffffffffffffffffffff169050600060405190508481111561272f5760206060fd5b8285848460045afa506122d761274487612d06565b64ffffffffff168685612ad6565b3b151590565b600054610100900460ff16806127715750612771612006565b8061277f575060005460ff16155b6127d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff1615801561283a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6128446001612d0c565b801561287357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156128f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fe96022913960400191505060405180910390fd5b8360ff16601b148061290657508360ff16601c145b61295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061305a6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156129b7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611d8957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611b0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612af686612d50565b9150506000612b0486612d50565b9150506000612b1286612d50565b9150506000612b2086612d50565b915050838383836040516020018080613109603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161300b82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612c98826123ad565b612ca183612399565b016bffffffffffffffffffffffff169050919050565b6000612cc282612e24565b1592915050565b6000612cd482612d06565b64ffffffffff1664ffffffffff1415612cef57506000610921565b6000612cfa83612c8d565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff166128735780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff161115612db85760ff600882021684901c612d7581612e4c565b61ffff16841793508160ff16601014612d9057601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612d56565b50600f5b60ff8160ff161015612e1e5760ff600882021684901c612ddb81612e4c565b61ffff16831792508160ff16600014612df657601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612dbc565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612e5e60048360ff16901c612e7c565b60ff161760081b62ffff0016612e7382612e7c565b60ff1617919050565b600060f08083179060ff82161415612e98576030915050610921565b8060ff1660f11415612eae576031915050610921565b8060ff1660f21415612ec4576032915050610921565b8060ff1660f31415612eda576033915050610921565b8060ff1660f41415612ef0576034915050610921565b8060ff1660f51415612f06576035915050610921565b8060ff1660f61415612f1c576036915050610921565b8060ff1660f71415612f32576037915050610921565b8060ff1660f81415612f48576038915050610921565b8060ff1660f91415612f5e576039915050610921565b8060ff1660fa1415612f74576061915050610921565b8060ff1660fb1415612f8a576062915050610921565b8060ff1660fc1415612fa0576063915050610921565b8060ff1660fd1415612fb6576064915050610921565b8060ff1660fe1415612fcc576065915050610921565b8060ff1660ff1415612fe2576066915050610921565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220f61f849dca031c9878e508d26642cea6a269bbf25a06652c3432c4281638286d64736f6c63430007060033"; export class Replica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestCommon__factory.ts b/typescript/typechain/optics-core/factories/TestCommon__factory.ts index a2d402c9b..d16b23705 100644 --- a/typescript/typechain/optics-core/factories/TestCommon__factory.ts +++ b/typescript/typechain/optics-core/factories/TestCommon__factory.ts @@ -94,7 +94,7 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "committedRoot", outputs: [ { internalType: "bytes32", @@ -275,7 +275,7 @@ const _abi = [ ]; const _bytecode = - "0x60a06040523480156200001157600080fd5b5060405162000f6c38038062000f6c833981810160405260408110156200003757600080fd5b5080516020909101516001600160e01b031960e083901b166080526200005d8162000065565b50506200024b565b600054610100900460ff16806200008157506200008162000142565b8062000090575060005460ff16155b620000cd5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000f3e602e913960400191505060405180910390fd5b600054610100900460ff16158015620000f9576000805460ff1961ff0019909116610100171660011790555b6200010362000160565b603480546001600160a01b0319166001600160a01b0384161760ff60a01b1916600160a01b17905580156200013e576000805461ff00191690555b5050565b60006200015a306200022160201b620007431760201c565b15905090565b600054610100900460ff16806200017c57506200017c62000142565b806200018b575060005460ff16155b620001c85760405162461bcd60e51b815260040180806020018281038252602e81526020018062000f3e602e913960400191505060405180910390fd5b600054610100900460ff16158015620001f4576000805460ff1961ff0019909116610100171660011790555b6200020b60016200022760201b620007491760201c565b80156200021e576000805461ff00191690555b50565b3b151590565b80546001600160801b03166200021e5780546001600160801b031916600117815550565b60805160e01c610cd06200026e6000398061060c528061067a5250610cd06000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80639d54f41911610081578063c19d93fb1161005b578063c19d93fb146102fe578063df034cd014610327578063f6d1610214610358576100c9565b80639d54f419146102bb5780639fa6a6e3146102ee578063ab91c7b0146102f6576100c9565b80632bef2892116100b25780632bef28921461026357806345630b1a146102805780638d3638f41461029a576100c9565b806319d9d21a146100ce57806325605c021461019d575b600080fd5b61019b600480360360a08110156100e457600080fd5b813591602081019181019060808101606082013564010000000081111561010a57600080fd5b82018360208201111561011c57600080fd5b8035906020019184600183028401116401000000008311171561013e57600080fd5b91939092909160208101903564010000000081111561015c57600080fd5b82018360208201111561016e57600080fd5b8035906020019184600183028401116401000000008311171561019057600080fd5b509092509050610360565b005b61024f600480360360608110156101b357600080fd5b8135916020810135918101906060810160408201356401000000008111156101da57600080fd5b8201836020820111156101ec57600080fd5b8035906020019184600183028401116401000000008311171561020e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105bd945050505050565b604080519115158252519081900360200190f35b61024f6004803603602081101561027957600080fd5b50356105d2565b6102886105e5565b60408051918252519081900360200190f35b6102a2610678565b6040805163ffffffff9092168252519081900360200190f35b61019b600480360360208110156102d157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661069c565b6102886106e3565b6102886106e9565b6103066106fa565b6040518082600281111561031657fe5b815260200191505060405180910390f35b61032f61071b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610288610737565b600260345474010000000000000000000000000000000000000000900460ff16600281111561038b57fe5b14156103f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261043a918891883591889088908190840183828082843760009201919091525061078e92505050565b8015610489575061048986866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061078e92505050565b801561049a57508435602086013514155b156105b5576104a7610820565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b60006105ca84848461078e565b949350505050565b60006105df60018361082a565b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b166020808301919091527f4f5054494353000000000000000000000000000000000000000000000000000060248301528251600a818403018152602a909201909252805191012090565b7f000000000000000000000000000000000000000000000000000000000000000081565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60355481565b60006106f560016108a4565b905090565b60345474010000000000000000000000000000000000000000900460ff1681565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b60006106f560016108dc565b3b151590565b80546fffffffffffffffffffffffffffffffff1661078b5780547fffffffffffffffffffffffffffffffff000000000000000000000000000000001660011781555b50565b6000806107996105e5565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506107da81610919565b60345490915073ffffffffffffffffffffffffffffffffffffffff16610800828561096a565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b610828610a04565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16811161089a5760008181526001850160205260409020548314156108925760019150506105df565b600101610842565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166105ca8282610a45565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146109dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6109fa86828585610a5f565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c576022913960400191505060405180910390fd5b8360ff16601b1480610aef57508360ff16601c145b610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c796022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ba0573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610c4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122005f588c7ab7fb88fe20a3df94c5522bb7e09e690c902ad161c0fd23ce3a0101864736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + "0x60a06040523480156200001157600080fd5b5060405162000f6c38038062000f6c833981810160405260408110156200003757600080fd5b5080516020909101516001600160e01b031960e083901b166080526200005d8162000065565b50506200024b565b600054610100900460ff16806200008157506200008162000142565b8062000090575060005460ff16155b620000cd5760405162461bcd60e51b815260040180806020018281038252602e81526020018062000f3e602e913960400191505060405180910390fd5b600054610100900460ff16158015620000f9576000805460ff1961ff0019909116610100171660011790555b6200010362000160565b603480546001600160a01b0319166001600160a01b0384161760ff60a01b1916600160a01b17905580156200013e576000805461ff00191690555b5050565b60006200015a306200022160201b620007431760201c565b15905090565b600054610100900460ff16806200017c57506200017c62000142565b806200018b575060005460ff16155b620001c85760405162461bcd60e51b815260040180806020018281038252602e81526020018062000f3e602e913960400191505060405180910390fd5b600054610100900460ff16158015620001f4576000805460ff1961ff0019909116610100171660011790555b6200020b60016200022760201b620007491760201c565b80156200021e576000805461ff00191690555b50565b3b151590565b80546001600160801b03166200021e5780546001600160801b031916600117815550565b60805160e01c610cd06200026e6000398061060c52806106805250610cd06000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638d3638f411610081578063c19d93fb1161005b578063c19d93fb146102fe578063df034cd014610327578063f6d1610214610358576100c9565b80638d3638f4146102a25780639d54f419146102c3578063ab91c7b0146102f6576100c9565b80632bef2892116100b25780632bef28921461026357806345630b1a1461028057806367a6771d1461029a576100c9565b806319d9d21a146100ce57806325605c021461019d575b600080fd5b61019b600480360360a08110156100e457600080fd5b813591602081019181019060808101606082013564010000000081111561010a57600080fd5b82018360208201111561011c57600080fd5b8035906020019184600183028401116401000000008311171561013e57600080fd5b91939092909160208101903564010000000081111561015c57600080fd5b82018360208201111561016e57600080fd5b8035906020019184600183028401116401000000008311171561019057600080fd5b509092509050610360565b005b61024f600480360360608110156101b357600080fd5b8135916020810135918101906060810160408201356401000000008111156101da57600080fd5b8201836020820111156101ec57600080fd5b8035906020019184600183028401116401000000008311171561020e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105bd945050505050565b604080519115158252519081900360200190f35b61024f6004803603602081101561027957600080fd5b50356105d2565b6102886105e5565b60408051918252519081900360200190f35b610288610678565b6102aa61067e565b6040805163ffffffff9092168252519081900360200190f35b61019b600480360360208110156102d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106a2565b6102886106e9565b6103066106fa565b6040518082600281111561031657fe5b815260200191505060405180910390f35b61032f61071b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610288610737565b600260345474010000000000000000000000000000000000000000900460ff16600281111561038b57fe5b14156103f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261043a918891883591889088908190840183828082843760009201919091525061078e92505050565b8015610489575061048986866001602002013584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061078e92505050565b801561049a57508435602086013514155b156105b5576104a7610820565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b60006105ca84848461078e565b949350505050565b60006105df60018361082a565b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060e01b166020808301919091527f4f5054494353000000000000000000000000000000000000000000000000000060248301528251600a818403018152602a909201909252805191012090565b60355481565b7f000000000000000000000000000000000000000000000000000000000000000081565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006106f560016108a4565b905090565b60345474010000000000000000000000000000000000000000900460ff1681565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b60006106f560016108dc565b3b151590565b80546fffffffffffffffffffffffffffffffff1661078b5780547fffffffffffffffffffffffffffffffff000000000000000000000000000000001660011781555b50565b6000806107996105e5565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506107da81610919565b60345490915073ffffffffffffffffffffffffffffffffffffffff16610800828561096a565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b610828610a04565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16811161089a5760008181526001850160205260409020548314156108925760019150506105df565b600101610842565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166105ca8282610a45565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146109dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6109fa86828585610a5f565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c576022913960400191505060405180910390fd5b8360ff16601b1480610aef57508360ff16601c145b610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c796022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ba0573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610c4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220ae4f6da5b272664d004cb1abdcceee0e1dafb4e0f7f402009a683995fbeeffc364736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; export class TestCommon__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestGovernanceRouter__factory.ts b/typescript/typechain/optics-core/factories/TestGovernanceRouter__factory.ts index a2f6c462a..dd81bdd33 100644 --- a/typescript/typechain/optics-core/factories/TestGovernanceRouter__factory.ts +++ b/typescript/typechain/optics-core/factories/TestGovernanceRouter__factory.ts @@ -58,7 +58,7 @@ const _abi = [ { indexed: false, internalType: "uint256", - name: "endBlock", + name: "recoveryActiveAt", type: "uint256", }, ], @@ -530,7 +530,7 @@ const _abi = [ ]; const _bytecode = - "0x60c06040523480156200001157600080fd5b5060405162003a2338038062003a23833981016040819052620000349162000050565b5060e01b6001600160e01b031916608052603260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a051613961620000c2600039806104fe528061102652508061087752806108e8528061106b5280611db352506139616000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c806363706be3116100e3578063db2021ae1161008c578063e6b3d94911610066578063e6b3d94914610308578063e8c6f83a1461031b578063f05151df1461032e57610198565b8063db2021ae146102e5578063de314b19146102f8578063e54292981461030057610198565b806368b967dc116100bd57806368b967dc146102b75780638d3638f4146102ca578063c3ef2134146102d257610198565b806363706be31461029457806366cf8fab1461029c578063670a43c4146102af57610198565b80634626abee116101455780635585416c1161011f5780635585416c1461024c57806356d5d4751461026157806356f7e2981461027457610198565b80634626abee14610213578063485cc955146102265780634fedbbb51461023957610198565b8063316c92b611610176578063316c92b6146101f05780633339df96146101f857806341bdc8b51461020057610198565b80630c340a241461019d5780630ce21995146101bb5780632ead72f6146101d0575b600080fd5b6101a5610336565b6040516101b291906133cc565b60405180910390f35b6101ce6101c9366004613264565b610352565b005b6101e36101de3660046131bc565b61041c565b6040516101b291906133f8565b6101ce61042e565b6101a561057c565b6101ce61020e3660046130d4565b610598565b6101ce610221366004613128565b610692565b6101ce6102343660046130f0565b61078d565b6101ce610247366004613211565b610a1f565b610254610be7565b6040516101b2919061366a565b6101ce61026f36600461328f565b610c0b565b6102876102823660046131bc565b610e9e565b6040516101b291906133ed565b6101ce610f07565b6102546102aa3660046131a4565b610fea565b6101e3611024565b6101ce6102c5366004613264565b611048565b610254611069565b6101ce6102e03660046131f4565b61108d565b6101ce6102f33660046131f4565b61109f565b6101a5611178565b6101e3611194565b6101ce6103163660046130d4565b61119a565b6101ce610329366004613264565b611279565b610287611309565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61035a611309565b6103bd5760035473ffffffffffffffffffffffffffffffffffffffff1633146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b60405180910390fd5b61040e565b60025473ffffffffffffffffffffffffffffffffffffffff16331461040e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b610418828261132a565b5050565b60056020526000908152604090205481565b610436611309565b1561046d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613520565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b600154156104f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613557565b610522427f00000000000000000000000000000000000000000000000000000000000000006113bb565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae2259161057291906133f8565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6105a0611309565b6105fa5760035473ffffffffffffffffffffffffffffffffffffffff1633146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b61064b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461064b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069a611309565b6106f45760035473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b610745565b60025473ffffffffffffffffffffffffffffffffffffffff163314610745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b60005b818110156107885761077f83838381811061075f57fe5b905060200281019061077191906136f7565b61077a906137ae565b611438565b50600101610748565b505050565b600054610100900460ff16806107a657506107a66114fb565b806107b4575060005460ff16155b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061383c602e913960400191505060405180910390fd5b600054610100900460ff1615801561086f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b33600161089d7f0000000000000000000000000000000000000000000000000000000000000000838361150c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108e685610598565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad91906131d8565b63ffffffff16146109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906134b4565b5050801561078857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b610a78611309565b15610aaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613520565b6000610aba84611603565b90506000610ad0610acb848661374e565b611650565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3a57600080fd5b505afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b729190613188565b73ffffffffffffffffffffffffffffffffffffffff1663d34686398684846040518463ffffffff1660e01b8152600401610bae9392919061367b565b600060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c60913391016133cc565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190613168565b610ce6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906134e9565b8282610cf28282611825565b610d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061347d565b6000610d348482611872565b9050610d617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611896565b15610d9e57610d99610d947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166118f1565b61193f565b610e96565b610dc97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166119d8565b15610e0157610d99610dfc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a36565b611a50565b610e2c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611adb565b15610e6457610d99610e5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611ae4565b611afe565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613633565b505050505050565b6000805b600654811015610efc578263ffffffff1660068281548110610ec057fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415610ef4576001915050610f02565b600101610ea2565b50600090505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610f58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b600154610f91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061340f565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610fe09173ffffffffffffffffffffffffffffffffffffffff909116906133cc565b60405180910390a1565b60068181548110610ffa57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b611052828261132a565b600061105e8383611b73565b905061078881611ba0565b7f000000000000000000000000000000000000000000000000000000000000000081565b6104188261109a83611d98565b61132a565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b6110f8611309565b1561112f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613520565b600061113a83611db1565b905061114783838361150c565b80156111535750610418565b60006111678461116285611d98565b611de0565b905061117281611ba0565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff1633146111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c5565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613446565b6112d2611309565b15611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613520565b6001546000908015801590428311159082906113225750805b935050505090565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906113769084908690613401565b60405180910390a2816113925761138c83611e08565b50610418565b806113a0576113a083611eaf565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561142f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006114498360000151611f0f565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516114769190613324565b6000604051808303816000865af19150503d80600081146114b3576040519150601f19603f3d011682016040523d82523d6000602084013e6114b8565b606091505b5093509050806114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061358e565b5050919050565b600061150630611f12565b15905090565b8061151c5761151a83611603565b505b60008161152a57600061152c565b825b600380547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8881168202929092177fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff858116918217948590556040519596509094908416937f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa936115f593909104169089906136e0565b60405180910390a350505050565b63ffffffff811660009081526005602052604090205480610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135fc565b805160609060006002820167ffffffffffffffff8111801561167157600080fd5b5060405190808252806020026020018201604052801561169b578160200160208202803683370190505b5090506116e9600060016040516020016116b59190613340565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290611872565b816000815181106116f657fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910182015260405161173c916000916116b59186910161339c565b8160018151811061174957fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b8281101561181357600085828151811061179357fe5b6020026020010151905060006117c66000836000015184602001515185602001516040516020016116b5939291906132f7565b9050808460028501815181106117d857fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152505060010161177d565b5061181d81611f18565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561142f57505063ffffffff919091166000908152600560205260409020541490565b81516000906020840161188d64ffffffffff85168284611f68565b95945050505050565b600060016118a383611fc9565b60ff16148015611432575060406118db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611ff9565b6bffffffffffffffffffffffff16101592915050565b60006118fc82611896565b156119375761193060015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084169061200d565b9050610f02565b611432612033565b806001611970815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612057565b50600061199e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166121d7565b905060005b81518110156119d1576119c88282815181106119bb57fe5b6020026020010151611438565b506001016119a3565b5050505050565b600060025b60ff166119e983611fc9565b60ff1614801561143257506025611a217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611ff9565b6bffffffffffffffffffffffff161492915050565b6000611a41826119d8565b15611937576119306002611907565b806002611a5c81611947565b506000611a8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661237a565b90506000611ac1611abc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166123ab565b611f0f565b90506000611ace83611db1565b9050610e9683838361150c565b600060036119dd565b6000611aef82611adb565b15611937576119306003611907565b806003611b0a81611947565b506000611b387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661237a565b90506000611b677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166123ab565b90506119d1828261132a565b606061142f611b9b611b966000600387876040516020016116b593929190613355565b6123dc565b612411565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0a57600080fd5b505afa158015611c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c429190613188565b905060005b60065481101561078857600063ffffffff1660068281548110611c6657fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611d90578173ffffffffffffffffffffffffffffffffffffffff1663d346863960068381548110611cb857fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611cef57fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d5d939289910161367b565b600060405180830381600087803b158015611d7757600080fd5b505af1158015611d8b573d6000803e3d6000fd5b505050505b600101611c47565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b606061142f611b9b611e036000600287876040516020016116b593929190613355565b612455565b63ffffffff811660009081526005602052604081208190555b600654811015610418578163ffffffff1660068281548110611e3f57fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611ea45760068181548110611e7657fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611eac565b600101611e21565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611f2d8460208401612463565b90506000611f3a82611ff9565b6bffffffffffffffffffffffff1690506000611f55836124db565b9184525082016020016040525092915050565b600080611f7584846124ef565b9050604051811115611f85575060005b80611fb3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611fc2565b611fbe858585612561565b9150505b9392505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826001612574565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b60006120638383612595565b6121d0576000612081612075856125b7565b64ffffffffff166125bd565b91505060006120968464ffffffffff166125bd565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b8381101561219557818101518382015260200161217d565b50505050905090810190601f1680156121c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b606060006122097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416600180612574565b9050600061227a60028061223e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611ff9565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816929190612691565b905060008260ff1667ffffffffffffffff8111801561229857600080fd5b506040519080825280602002602001820160405280156122d257816020015b6122bf612f88565b8152602001906001900390816122b75790505b50905060005b60006123057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611ff9565b6bffffffffffffffffffffffff1611156123715761232283612721565b82828151811061232e57fe5b60209081029190910101515261234383612751565b82828151811061234f57fe5b60200260200101516020018190525061236783612790565b92506001016122d8565b50949350505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660016004612574565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166005602061281b565b60006114326123ea83611ae4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612989565b606060008061241f84611ff9565b6bffffffffffffffffffffffff16905060405191508192506124448483602001612a03565b508181016020016040529052919050565b60006114326123ea83611a36565b6000604051828111156124765760206060fd5b506000805b84518110156124ce57600085828151811061249257fe5b602002602001015190506124a881848701612a03565b506124b281611ff9565b6bffffffffffffffffffffffff1692909201915060010161247b565b5061181d60008483612561565b60006124e682612b2f565b60200292915050565b8181018281101561143257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff1661258b85858561281b565b901c949350505050565b60008164ffffffffff166125a8846125b7565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156126255760ff600882021684901c6125e281612b63565b61ffff16841793508160ff166010146125fd57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125c3565b50600f5b60ff8160ff16101561268b5760ff600882021684901c61264881612b63565b61ffff16831792508160ff1660001461266357601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612629565b50915091565b60008061269d86612b93565b6bffffffffffffffffffffffff1690506126b686612ba7565b6126ca856126c484896124ef565b906124ef565b11156126f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061181d565b61270381866124ef565b90506127178364ffffffffff168286611f68565b9695505050505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682602061281b565b6060611432611b9b604061276485612bd1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861691906004612691565b600081600161279e81611947565b5060006127aa85612bd1565b604001905061188d81806127df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611ff9565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916929190612691565b600060ff821661282d57506000611fc2565b61283684611ff9565b6bffffffffffffffffffffffff166128518460ff85166124ef565b11156128f35761289261286385612b93565b6bffffffffffffffffffffffff1661287a86611ff9565b6bffffffffffffffffffffffff16858560ff16612c01565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561219557818101518382015260200161217d565b60208260ff161115612950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061386a603a913960400191505060405180910390fd5b60088202600061295f86612b93565b6bffffffffffffffffffffffff169050600061297a83612d5c565b91909501511695945050505050565b600061299482612da5565b6129ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b6000612a0e83612de2565b612a63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806138a46028913960400191505060405180910390fd5b612a6c83612da5565b612ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806138cc602b913960400191505060405180910390fd5b6000612acc84611ff9565b6bffffffffffffffffffffffff1690506000612ae785612b93565b6bffffffffffffffffffffffff1690506000604051905084811115612b0c5760206060fd5b8285848460045afa50612717612b21876125b7565b64ffffffffff168685612561565b60006020612b556020612b4185611ff9565b6bffffffffffffffffffffffff16906124ef565b81612b5c57fe5b0492915050565b6000612b7560048360ff16901c612df4565b60ff161760081b62ffff0016612b8a82612df4565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612bb282611ff9565b612bbb83612b93565b016bffffffffffffffffffffffff169050919050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660208061281b565b60606000612c0e866125bd565b9150506000612c1c866125bd565b9150506000612c2a866125bd565b9150506000612c38866125bd565b9150508383838360405160200180806138f7603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161381b82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612db0826125b7565b64ffffffffff1664ffffffffff1415612dcb57506000610f02565b6000612dd683612ba7565b60405110199392505050565b6000612ded82612f60565b1592915050565b600060f08083179060ff82161415612e10576030915050610f02565b8060ff1660f11415612e26576031915050610f02565b8060ff1660f21415612e3c576032915050610f02565b8060ff1660f31415612e52576033915050610f02565b8060ff1660f41415612e68576034915050610f02565b8060ff1660f51415612e7e576035915050610f02565b8060ff1660f61415612e94576036915050610f02565b8060ff1660f71415612eaa576037915050610f02565b8060ff1660f81415612ec0576038915050610f02565b8060ff1660f91415612ed6576039915050610f02565b8060ff1660fa1415612eec576061915050610f02565b8060ff1660fb1415612f02576062915050610f02565b8060ff1660fc1415612f18576063915050610f02565b8060ff1660fd1415612f2e576064915050610f02565b8060ff1660fe1415612f44576065915050610f02565b8060ff1660ff1415612f5a576066915050610f02565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612fb1578182fd5b50813567ffffffffffffffff811115612fc8578182fd5b6020830191508360208083028501011115612fe257600080fd5b9250929050565b600082601f830112612ff9578081fd5b813567ffffffffffffffff81111561300d57fe5b61303e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161372a565b818152846020838601011115613052578283fd5b816020850160208301379081016020019190915292915050565b60006040828403121561307d578081fd5b6040516040810167ffffffffffffffff828210818311171561309b57fe5b816040528293508435835260208501359150808211156130ba57600080fd5b506130c785828601612fe9565b6020830152505092915050565b6000602082840312156130e5578081fd5b813561142f816137e6565b60008060408385031215613102578081fd5b823561310d816137e6565b9150602083013561311d816137e6565b809150509250929050565b6000806020838503121561313a578182fd5b823567ffffffffffffffff811115613150578283fd5b61315c85828601612fa0565b90969095509350505050565b600060208284031215613179578081fd5b8151801515811461142f578182fd5b600060208284031215613199578081fd5b815161142f816137e6565b6000602082840312156131b5578081fd5b5035919050565b6000602082840312156131cd578081fd5b813561142f81613808565b6000602082840312156131e9578081fd5b815161142f81613808565b60008060408385031215613206578182fd5b823561310d81613808565b600080600060408486031215613225578081fd5b833561323081613808565b9250602084013567ffffffffffffffff81111561324b578182fd5b61325786828701612fa0565b9497909650939450505050565b60008060408385031215613276578182fd5b823561328181613808565b946020939093013593505050565b6000806000606084860312156132a3578283fd5b83356132ae81613808565b925060208401359150604084013567ffffffffffffffff8111156132d0578182fd5b6132dc86828701612fe9565b9150509250925092565b600581106132f057fe5b60f81b9052565b600084825283602083015282516133158160408501602087016137ba565b91909101604001949350505050565b600082516133368184602087016137ba565b9190910192915050565b600061334c82846132e6565b50600101919050565b600061336182866132e6565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff851682528360208301526060604083015282518060608401526136ac8160808501602087016137ba565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613336578182fd5b60405181810167ffffffffffffffff8111828210171561374657fe5b604052919050565b600067ffffffffffffffff83111561376257fe5b6020613771818286020161372a565b8481528181019084845b878110156137a257613790368335890161306c565b8452928401929084019060010161377b565b50909695505050505050565b6000611432368361306c565b60005b838110156137d55781810151838201526020016137bd565b838111156111725750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611eac57600080fd5b63ffffffff81168114611eac57600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220ac846dabba2f19f417a06d3c7fecce5e7fa868506373eb90b28767111b3f8a1764736f6c63430007060033"; + "0x60c06040523480156200001157600080fd5b5060405162003a5638038062003a56833981016040819052620000349162000050565b5060e01b6001600160e01b031916608052603260a05262000087565b6000806040838503121562000063578182fd5b825163ffffffff8116811462000077578283fd5b6020939093015192949293505050565b60805160e01c60a051613994620000c2600039806104fe528061102652508061087752806108e8528061106b5280611de652506139946000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c806363706be3116100e3578063db2021ae1161008c578063e6b3d94911610066578063e6b3d94914610308578063e8c6f83a1461031b578063f05151df1461032e57610198565b8063db2021ae146102e5578063de314b19146102f8578063e54292981461030057610198565b806368b967dc116100bd57806368b967dc146102b75780638d3638f4146102ca578063c3ef2134146102d257610198565b806363706be31461029457806366cf8fab1461029c578063670a43c4146102af57610198565b80634626abee116101455780635585416c1161011f5780635585416c1461024c57806356d5d4751461026157806356f7e2981461027457610198565b80634626abee14610213578063485cc955146102265780634fedbbb51461023957610198565b8063316c92b611610176578063316c92b6146101f05780633339df96146101f857806341bdc8b51461020057610198565b80630c340a241461019d5780630ce21995146101bb5780632ead72f6146101d0575b600080fd5b6101a5610336565b6040516101b291906133ff565b60405180910390f35b6101ce6101c9366004613297565b610352565b005b6101e36101de3660046131ef565b61041c565b6040516101b2919061342b565b6101ce61042e565b6101a561057c565b6101ce61020e366004613107565b610598565b6101ce61022136600461315b565b610692565b6101ce610234366004613123565b61078d565b6101ce610247366004613244565b610a1f565b610254610be7565b6040516101b2919061369d565b6101ce61026f3660046132c2565b610c0b565b6102876102823660046131ef565b610e9e565b6040516101b29190613420565b6101ce610f07565b6102546102aa3660046131d7565b610fea565b6101e3611024565b6101ce6102c5366004613297565b611048565b610254611069565b6101ce6102e0366004613227565b61108d565b6101ce6102f3366004613227565b61109f565b6101a5611178565b6101e3611194565b6101ce610316366004613107565b61119a565b6101ce610329366004613297565b611279565b610287611309565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b61035a611309565b6103bd5760035473ffffffffffffffffffffffffffffffffffffffff1633146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b60405180910390fd5b61040e565b60025473ffffffffffffffffffffffffffffffffffffffff16331461040e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b610418828261132a565b5050565b60056020526000908152604090205481565b610436611309565b1561046d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613553565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b600154156104f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061358a565b610522427f00000000000000000000000000000000000000000000000000000000000000006113bb565b600181905560025460405173ffffffffffffffffffffffffffffffffffffffff909116917f4c75781638d2c3a22c08e1295107f831b97683d017a1145733b743479a2ae22591610572919061342b565b60405180910390a2565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6105a0611309565b6105fa5760035473ffffffffffffffffffffffffffffffffffffffff1633146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b61064b565b60025473ffffffffffffffffffffffffffffffffffffffff16331461064b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069a611309565b6106f45760035473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b610745565b60025473ffffffffffffffffffffffffffffffffffffffff163314610745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b60005b818110156107885761077f83838381811061075f57fe5b9050602002810190610771919061372a565b61077a906137e1565b611438565b50600101610748565b505050565b600054610100900460ff16806107a657506107a66114fb565b806107b4575060005460ff16155b610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061386f602e913960400191505060405180910390fd5b600054610100900460ff1615801561086f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b33600161089d7f0000000000000000000000000000000000000000000000000000000000000000838361150c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556108e685610598565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad919061320b565b63ffffffff16146109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906134e7565b5050801561078857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b610a78611309565b15610aaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613553565b6000610aba84611636565b90506000610ad0610acb8486613781565b611683565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3a57600080fd5b505afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7291906131bb565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018684846040518463ffffffff1660e01b8152600401610bae939291906136ae565b600060405180830381600087803b158015610bc857600080fd5b505af1158015610bdc573d6000803e3d6000fd5b505050505050505050565b60035474010000000000000000000000000000000000000000900463ffffffff1681565b600480546040517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691635190bc5391610c60913391016133ff565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb0919061319b565b610ce6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061351c565b8282610cf28282611858565b610d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906134b0565b6000610d3484826118a5565b9050610d617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166118c9565b15610d9e57610d99610d947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611924565b611972565b610e96565b610dc97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611a0b565b15610e0157610d99610dfc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611a69565b611a83565b610e2c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216611b0e565b15610e6457610d99610e5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611b17565b611b31565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613666565b505050505050565b6000805b600654811015610efc578263ffffffff1660068281548110610ec057fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415610ef4576001915050610f02565b600101610ea2565b50600090505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610f58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b600154610f91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613442565b60006001556002546040517f5397c02652a688dd1cac8544f233b3daaf96d7a9f974af80b70ab1538359e26191610fe09173ffffffffffffffffffffffffffffffffffffffff909116906133ff565b60405180910390a1565b60068181548110610ffa57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b611052828261132a565b600061105e8383611ba6565b905061078881611bd3565b7f000000000000000000000000000000000000000000000000000000000000000081565b6104188261109a83611dcb565b61132a565b60035473ffffffffffffffffffffffffffffffffffffffff1633146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b6110f8611309565b1561112f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613553565b600061113a83611de4565b905061114783838361150c565b80156111535750610418565b60006111678461116285611dcb565b611e13565b905061117281611bd3565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff1633146111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135f8565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3b3f758030fa296b85e15008f79cd22af8ffd2a7dd360d8963dcaf8e9fa2b5ff90600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035473ffffffffffffffffffffffffffffffffffffffff1633146112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613479565b6112d2611309565b15611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af90613553565b6001546000908015801590428311159082906113225750805b935050505090565b63ffffffff8216600081815260056020526040908190205490519091907fe1cc453e5e6d48a5e3dd7dc6c72117211d2bea20fbb91fd980ebc3e7f73fe546906113769084908690613434565b60405180910390a2816113925761138c83611e3b565b50610418565b806113a0576113a083611ee2565b5063ffffffff91909116600090815260056020526040902055565b60008282018381101561142f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b606060006114498360000151611f42565b905060008173ffffffffffffffffffffffffffffffffffffffff1684602001516040516114769190613357565b6000604051808303816000865af19150503d80600081146114b3576040519150601f19603f3d011682016040523d82523d6000602084013e6114b8565b606091505b5093509050806114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af906135c1565b5050919050565b600061150630611f45565b15905090565b8061151c5761151a83611636565b505b60008161152a57600061152c565b825b60035460405191925073ffffffffffffffffffffffffffffffffffffffff80841692908216917f4daaa39e87dee84708195369c30e97baa0665dc8562ac10535a0f3a9329943aa9161159e9174010000000000000000000000000000000000000000900463ffffffff16908990613713565b60405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000063ffffffff90961674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9093169290921794909416179092555050565b63ffffffff811660009081526005602052604090205480610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061362f565b805160609060006002820167ffffffffffffffff811180156116a457600080fd5b506040519080825280602002602001820160405280156116ce578160200160208202803683370190505b50905061171c600060016040516020016116e89190613373565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052906118a5565b8160008151811061172957fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910182015260405161176f916000916116e8918691016133cf565b8160018151811061177c57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015260005b828110156118465760008582815181106117c657fe5b6020026020010151905060006117f96000836000015184602001515185602001516040516020016116e89392919061332a565b90508084600285018151811061180b57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015250506001016117b0565b5061185081611f4b565b949350505050565b60035460009063ffffffff848116740100000000000000000000000000000000000000009092041614801561142f57505063ffffffff919091166000908152600560205260409020541490565b8151600090602084016118c064ffffffffff85168284611f9b565b95945050505050565b600060016118d683611ffc565b60ff161480156114325750604061190e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841661202c565b6bffffffffffffffffffffffff16101592915050565b600061192f826118c9565b1561196a5761196360015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841690612040565b9050610f02565b611432612066565b8060016119a3815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084169061208a565b5060006119d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661220a565b905060005b8151811015611a04576119fb8282815181106119ee57fe5b6020026020010151611438565b506001016119d6565b5050505050565b600060025b60ff16611a1c83611ffc565b60ff1614801561143257506025611a547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841661202c565b6bffffffffffffffffffffffff161492915050565b6000611a7482611a0b565b1561196a57611963600261193a565b806002611a8f8161197a565b506000611abd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123ad565b90506000611af4611aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166123de565b611f42565b90506000611b0183611de4565b9050610e9683838361150c565b60006003611a10565b6000611b2282611b0e565b1561196a57611963600361193a565b806003611b3d8161197a565b506000611b6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166123ad565b90506000611b9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166123de565b9050611a04828261132a565b606061142f611bce611bc96000600387876040516020016116e893929190613388565b61240f565b612444565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3d57600080fd5b505afa158015611c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7591906131bb565b905060005b60065481101561078857600063ffffffff1660068281548110611c9957fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff1614611dc3578173ffffffffffffffffffffffffffffffffffffffff1663fa31de0160068381548110611ceb57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff166005600060068681548110611d2257fe5b6000918252602080832060088304015463ffffffff6004600790941684026101000a909104168452830193909352604091820190205490517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152611d9093928991016136ae565b600060405180830381600087803b158015611daa57600080fd5b505af1158015611dbe573d6000803e3d6000fd5b505050505b600101611c7a565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff90811691161490565b606061142f611bce611e366000600287876040516020016116e893929190613388565b612488565b63ffffffff811660009081526005602052604081208190555b600654811015610418578163ffffffff1660068281548110611e7257fe5b6000918252602090912060088204015460079091166004026101000a900463ffffffff161415611ed75760068181548110611ea957fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905550611edf565b600101611e54565b50565b600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f6008820401805460079092166004026101000a63ffffffff818102199093169390921691909102919091179055565b90565b3b151590565b6040516060906000611f608460208401612496565b90506000611f6d8261202c565b6bffffffffffffffffffffffff1690506000611f888361250e565b9184525082016020016040525092915050565b600080611fa88484612522565b9050604051811115611fb8575060005b80611fe6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611ff5565b611ff1858585612594565b9150505b9392505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016125a7565b60181c6bffffffffffffffffffffffff1690565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b600061209683836125c8565b6122035760006120b46120a8856125ea565b64ffffffffff166125f0565b91505060006120c98464ffffffffff166125f0565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b838110156121c85781810151838201526020016121b0565b50505050905090810190601f1680156121f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b6060600061223c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166001806125a7565b905060006122ad6002806122717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000881661202c565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088169291906126c4565b905060008260ff1667ffffffffffffffff811180156122cb57600080fd5b5060405190808252806020026020018201604052801561230557816020015b6122f2612fbb565b8152602001906001900390816122ea5790505b50905060005b60006123387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661202c565b6bffffffffffffffffffffffff1611156123a45761235583612754565b82828151811061236157fe5b60209081029190910101515261237683612784565b82828151811061238257fe5b60200260200101516020018190525061239a836127c3565b925060010161230b565b50949350505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160046125a7565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166005602061284e565b600061143261241d83611b17565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166129bc565b60606000806124528461202c565b6bffffffffffffffffffffffff16905060405191508192506124778483602001612a36565b508181016020016040529052919050565b600061143261241d83611a69565b6000604051828111156124a95760206060fd5b506000805b84518110156125015760008582815181106124c557fe5b602002602001015190506124db81848701612a36565b506124e58161202c565b6bffffffffffffffffffffffff169290920191506001016124ae565b5061185060008483612594565b600061251982612b62565b60200292915050565b8181018281101561143257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60008160200360080260ff166125be85858561284e565b901c949350505050565b60008164ffffffffff166125db846125ea565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156126585760ff600882021684901c61261581612b96565b61ffff16841793508160ff1660101461263057601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016125f6565b50600f5b60ff8160ff1610156126be5760ff600882021684901c61267b81612b96565b61ffff16831792508160ff1660001461269657601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161265c565b50915091565b6000806126d086612bc6565b6bffffffffffffffffffffffff1690506126e986612bda565b6126fd856126f78489612522565b90612522565b111561272c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611850565b6127368186612522565b905061274a8364ffffffffff168286611f9b565b9695505050505050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682602061284e565b6060611432611bce604061279785612c04565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616919060046126c4565b60008160016127d18161197a565b5060006127dd85612c04565b60400190506118c081806128127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000891661202c565b6bffffffffffffffffffffffff160360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089169291906126c4565b600060ff821661286057506000611ff5565b6128698461202c565b6bffffffffffffffffffffffff166128848460ff8516612522565b1115612926576128c561289685612bc6565b6bffffffffffffffffffffffff166128ad8661202c565b6bffffffffffffffffffffffff16858560ff16612c34565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156121c85781810151838201526020016121b0565b60208260ff161115612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061389d603a913960400191505060405180910390fd5b60088202600061299286612bc6565b6bffffffffffffffffffffffff16905060006129ad83612d8f565b91909501511695945050505050565b60006129c782612dd8565b612a3257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b6000612a4183612e15565b612a96576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806138d76028913960400191505060405180910390fd5b612a9f83612dd8565b612af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806138ff602b913960400191505060405180910390fd5b6000612aff8461202c565b6bffffffffffffffffffffffff1690506000612b1a85612bc6565b6bffffffffffffffffffffffff1690506000604051905084811115612b3f5760206060fd5b8285848460045afa5061274a612b54876125ea565b64ffffffffff168685612594565b60006020612b886020612b748561202c565b6bffffffffffffffffffffffff1690612522565b81612b8f57fe5b0492915050565b6000612ba860048360ff16901c612e27565b60ff161760081b62ffff0016612bbd82612e27565b60ff1617919050565b60781c6bffffffffffffffffffffffff1690565b6000612be58261202c565b612bee83612bc6565b016bffffffffffffffffffffffff169050919050565b60006114327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660208061284e565b60606000612c41866125f0565b9150506000612c4f866125f0565b9150506000612c5d866125f0565b9150506000612c6b866125f0565b91505083838383604051602001808061392a603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161384e82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612de3826125ea565b64ffffffffff1664ffffffffff1415612dfe57506000610f02565b6000612e0983612bda565b60405110199392505050565b6000612e2082612f93565b1592915050565b600060f08083179060ff82161415612e43576030915050610f02565b8060ff1660f11415612e59576031915050610f02565b8060ff1660f21415612e6f576032915050610f02565b8060ff1660f31415612e85576033915050610f02565b8060ff1660f41415612e9b576034915050610f02565b8060ff1660f51415612eb1576035915050610f02565b8060ff1660f61415612ec7576036915050610f02565b8060ff1660f71415612edd576037915050610f02565b8060ff1660f81415612ef3576038915050610f02565b8060ff1660f91415612f09576039915050610f02565b8060ff1660fa1415612f1f576061915050610f02565b8060ff1660fb1415612f35576062915050610f02565b8060ff1660fc1415612f4b576063915050610f02565b8060ff1660fd1415612f61576064915050610f02565b8060ff1660fe1415612f77576065915050610f02565b8060ff1660ff1415612f8d576066915050610f02565b50919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b60408051808201909152600081526060602082015290565b60008083601f840112612fe4578182fd5b50813567ffffffffffffffff811115612ffb578182fd5b602083019150836020808302850101111561301557600080fd5b9250929050565b600082601f83011261302c578081fd5b813567ffffffffffffffff81111561304057fe5b61307160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161375d565b818152846020838601011115613085578283fd5b816020850160208301379081016020019190915292915050565b6000604082840312156130b0578081fd5b6040516040810167ffffffffffffffff82821081831117156130ce57fe5b816040528293508435835260208501359150808211156130ed57600080fd5b506130fa8582860161301c565b6020830152505092915050565b600060208284031215613118578081fd5b813561142f81613819565b60008060408385031215613135578081fd5b823561314081613819565b9150602083013561315081613819565b809150509250929050565b6000806020838503121561316d578182fd5b823567ffffffffffffffff811115613183578283fd5b61318f85828601612fd3565b90969095509350505050565b6000602082840312156131ac578081fd5b8151801515811461142f578182fd5b6000602082840312156131cc578081fd5b815161142f81613819565b6000602082840312156131e8578081fd5b5035919050565b600060208284031215613200578081fd5b813561142f8161383b565b60006020828403121561321c578081fd5b815161142f8161383b565b60008060408385031215613239578182fd5b82356131408161383b565b600080600060408486031215613258578081fd5b83356132638161383b565b9250602084013567ffffffffffffffff81111561327e578182fd5b61328a86828701612fd3565b9497909650939450505050565b600080604083850312156132a9578182fd5b82356132b48161383b565b946020939093013593505050565b6000806000606084860312156132d6578283fd5b83356132e18161383b565b925060208401359150604084013567ffffffffffffffff811115613303578182fd5b61330f8682870161301c565b9150509250925092565b6005811061332357fe5b60f81b9052565b600084825283602083015282516133488160408501602087016137ed565b91909101604001949350505050565b600082516133698184602087016137ed565b9190910192915050565b600061337f8284613319565b50600101919050565b60006133948286613319565b5060e09290921b7fffffffff000000000000000000000000000000000000000000000000000000001660018301526005820152602501919050565b60f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b918252602082015260400190565b60208082526016908201527f7265636f76657279206e6f7420696e6974696174656400000000000000000000604082015260600190565b60208082526014908201527f212063616c6c656420627920676f7665726e6f72000000000000000000000000604082015260600190565b6020808252600f908201527f21676f7665726e6f72526f757465720000000000000000000000000000000000604082015260600190565b6020808252818101527f58417070436f6e6e656374696f6e4d616e616765722062616420646f6d61696e604082015260600190565b60208082526008908201527f217265706c696361000000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f696e207265636f76657279000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f7265636f7665727920616c726561647920696e69746961746564000000000000604082015260600190565b6020808252600b908201527f63616c6c206661696c6564000000000000000000000000000000000000000000604082015260600190565b6020808252601c908201527f212063616c6c6564206279207265636f76657279206d616e6167657200000000604082015260600190565b60208082526007908201527f21726f7574657200000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f2176616c6964206d657373616765207479706500000000000000000000000000604082015260600190565b63ffffffff91909116815260200190565b600063ffffffff851682528360208301526060604083015282518060608401526136df8160808501602087016137ed565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01691909101608001949350505050565b63ffffffff92831681529116602082015260400190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613369578182fd5b60405181810167ffffffffffffffff8111828210171561377957fe5b604052919050565b600067ffffffffffffffff83111561379557fe5b60206137a4818286020161375d565b8481528181019084845b878110156137d5576137c3368335890161309f565b845292840192908401906001016137ae565b50909695505050505050565b6000611432368361309f565b60005b838110156138085781810151838201526020016137f0565b838111156111725750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611edf57600080fd5b63ffffffff81168114611edf57600080fdfe2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220a07f3f33a77936ff0db73e1a6856cb535935d83c9cefbdccdf7fada940122d1d64736f6c63430007060033"; export class TestGovernanceRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestHome__factory.ts b/typescript/typechain/optics-core/factories/TestHome__factory.ts index 667ea8cc1..2f24aaedf 100644 --- a/typescript/typechain/optics-core/factories/TestHome__factory.ts +++ b/typescript/typechain/optics-core/factories/TestHome__factory.ts @@ -28,6 +28,12 @@ const _abi = [ { anonymous: false, inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, { indexed: true, internalType: "uint256", @@ -37,19 +43,13 @@ const _abi = [ { indexed: true, internalType: "uint64", - name: "destinationAndSequence", + name: "destinationAndNonce", type: "uint64", }, - { - indexed: true, - internalType: "bytes32", - name: "leaf", - type: "bytes32", - }, { indexed: false, internalType: "bytes32", - name: "current", + name: "committedRoot", type: "bytes32", }, { @@ -228,12 +228,12 @@ const _abi = [ }, { inputs: [], - name: "count", + name: "committedRoot", outputs: [ { - internalType: "uint256", + internalType: "bytes32", name: "", - type: "uint256", + type: "bytes32", }, ], stateMutability: "view", @@ -241,12 +241,12 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "count", outputs: [ { - internalType: "bytes32", + internalType: "uint256", name: "", - type: "bytes32", + type: "uint256", }, ], stateMutability: "view", @@ -255,50 +255,50 @@ const _abi = [ { inputs: [ { - internalType: "bytes32", - name: "_oldRoot", - type: "bytes32", - }, - { - internalType: "bytes32[2]", - name: "_newRoot", - type: "bytes32[2]", + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", }, { - internalType: "bytes", - name: "_signature", - type: "bytes", + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", }, { internalType: "bytes", - name: "_signature2", + name: "_messageBody", type: "bytes", }, ], - name: "doubleUpdate", + name: "dispatch", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ - { - internalType: "uint32", - name: "_destinationDomain", - type: "uint32", - }, { internalType: "bytes32", - name: "_recipientAddress", + name: "_oldRoot", type: "bytes32", }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, { internalType: "bytes", - name: "_messageBody", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", type: "bytes", }, ], - name: "enqueue", + name: "doubleUpdate", outputs: [], stateMutability: "nonpayable", type: "function", @@ -384,6 +384,25 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "owner", @@ -462,25 +481,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - name: "sequences", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [], name: "setFailed", @@ -533,7 +533,7 @@ const _abi = [ outputs: [ { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -554,11 +554,11 @@ const _abi = [ }, { internalType: "uint32", - name: "_sequence", + name: "_nonce", type: "uint32", }, ], - name: "testDestinationAndSequence", + name: "testDestinationAndNonce", outputs: [ { internalType: "uint64", @@ -612,7 +612,7 @@ const _abi = [ inputs: [ { internalType: "bytes32", - name: "_currentRoot", + name: "_committedRoot", type: "bytes32", }, { @@ -660,7 +660,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b506040516130493803806130498339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612fd661007360003980610a2b5280610b78528061105652806114a75250612fd66000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638e4e30e011610104578063c19d93fb116100a2578063ebf0c71711610071578063ebf0c717146106fa578063f2fde38b14610702578063f6d1610214610735578063fd54b2281461073d576101cf565b8063c19d93fb146105de578063c4d66de814610607578063d34686391461063a578063df034cd0146106f2576101cf565b80639df6c8e1116100de5780639df6c8e1146105145780639fa6a6e31461051c578063ab91c7b014610524578063b31c01fb1461052c576101cf565b80638e4e30e0146103fc5780639776120e146104ae5780639d54f419146104e1576101cf565b806336e104de11610171578063522ae0021161014b578063522ae002146103b3578063715018a6146103bb5780638d3638f4146103c35780638da5cb5b146103cb576101cf565b806336e104de1461038257806345630b1a146103a35780635146366e146103ab576101cf565b8063146901db116101ad578063146901db1461023e57806319d9d21a146102485780632752e0f4146103155780632bef289214610351576101cf565b806306661abd146101d45780630be4f422146101ee578063111b3511146101f6575b600080fd5b6101dc610745565b60408051918252519081900360200190f35b6101dc61074b565b6102216004803603604081101561020c57600080fd5b5063ffffffff8135811691602001351661075a565b6040805167ffffffffffffffff9092168252519081900360200190f35b61024661076f565b005b610246600480360360a081101561025e57600080fd5b813591602081019181019060808101606082013564010000000081111561028457600080fd5b82018360208201111561029657600080fd5b803590602001918460018302840111640100000000831117156102b857600080fd5b9193909290916020810190356401000000008111156102d657600080fd5b8201836020820111156102e857600080fd5b8035906020019184600183028401116401000000008311171561030a57600080fd5b509092509050610779565b6103386004803603602081101561032b57600080fd5b503563ffffffff166109d6565b6040805163ffffffff9092168252519081900360200190f35b61036e6004803603602081101561036757600080fd5b50356109ef565b604080519115158252519081900360200190f35b61038a6109fc565b6040805192835260208301919091528051918290030190f35b6101dc610a24565b6101dc610a4f565b6101dc610a59565b610246610a5f565b610338610b76565b6103d3610b9a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61036e6004803603606081101561041257600080fd5b81359160208101359181019060608101604082013564010000000081111561043957600080fd5b82018360208201111561044b57600080fd5b8035906020019184600183028401116401000000008311171561046d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bb6945050505050565b610246600480360360208110156104c457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e09565b610246600480360360208110156104f757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ebd565b6103d3610f4d565b6101dc610f6a565b6101dc610f70565b6102466004803603606081101561054257600080fd5b81359160208101359181019060608101604082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f7c945050505050565b6105e661111a565b604051808260028111156105f657fe5b815260200191505060405180910390f35b6102466004803603602081101561061d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661113b565b6102466004803603606081101561065057600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561067d57600080fd5b82018360208201111561068f57600080fd5b803590602001918460018302840111640100000000831117156106b157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061134e945050505050565b6103d36115c4565b6101dc6115e0565b6102466004803603602081101561071857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115ec565b6101dc61178e565b6101dc61179a565b60205490565b6000610755610745565b905090565b600061076683836117a0565b90505b92915050565b6107776117ba565b565b600260865474010000000000000000000000000000000000000000900460ff1660028111156107a457fe5b141561081157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261085391889188359188908890819084018382808284376000920191909152506117fb92505050565b80156108a257506108a286866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117fb92505050565b80156108b357508435602086013514155b156109ce576108c061188d565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b61011b6020526000908152604090205463ffffffff1681565b6000610769605383611969565b600080610a0960536119d9565b15610a20576087549150610a1d6053611a19565b90505b9091565b60006107557f0000000000000000000000000000000000000000000000000000000000000000611a56565b6000610755610a24565b61080081565b610a67611acb565b73ffffffffffffffffffffffffffffffffffffffff16610a85610b9a565b73ffffffffffffffffffffffffffffffffffffffff1614610b0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610be357fe5b1415610c5057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610c5b8484846117fb565b610cc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610d3657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610d41605384611969565b610dfe57610d4d61188d565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610dba578181015183820152602001610da2565b50505050905090810190601f168015610de75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610e02565b5060005b9392505050565b610e11611acb565b73ffffffffffffffffffffffffffffffffffffffff16610e2f610b9a565b73ffffffffffffffffffffffffffffffffffffffff1614610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eba81611acf565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610f4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610eba81611bbd565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60875481565b600061075560536119d9565b600260865474010000000000000000000000000000000000000000900460ff166002811115610fa757fe5b141561101457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b61101f838383610bb6565b1561102957611115565b60006110356053611c36565b905082811415611045575061104b565b50611029565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110da5781810151838201526020016110c2565b50505050905090810190601f1680156111075780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff16806111545750611154611d6f565b80611162575060525460ff16155b6111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff1615801561121d57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611225611d80565b61122e82611acf565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561129a57600080fd5b505afa1580156112ae573d6000803e3d6000fd5b505050506040513d60208110156112c457600080fd5b505190506112d181611ea3565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561134a57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600260865474010000000000000000000000000000000000000000900460ff16600281111561137957fe5b14156113e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561145857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556114d07f00000000000000000000000000000000000000000000000000000000000000003384888888612038565b805160208201209091506114e560008261210e565b6114f86114f06115e0565b605390612216565b508061150487856117a0565b67ffffffffffffffff166001611518610745565b037f212a0c695ace91176d2e6d1ba9200ae05dbe3e8b58f2b310103eb27777b13504608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611581578181015183820152602001611569565b50505050905090810190601f1680156115ae5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006107556000612283565b6115f4611acb565b73ffffffffffffffffffffffffffffffffffffffff16611612610b9a565b73ffffffffffffffffffffffffffffffffffffffff161461169457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611700576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612f096026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006107556053611a19565b60205481565b63ffffffff1660209190911b67ffffffff00000000161790565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b600080611806610a24565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061184781612296565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661186d82856122e7565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b6118956117ba565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b15801561190857600080fd5b505af115801561191c573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610dfe5760008181526001850160205260409020548314156119d1576001915050610769565b600101611981565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611a118282612381565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b611ad88161239b565b611b4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c6e8282612381565b611cd957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d2a576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611d7a3061239b565b15905090565b605254610100900460ff1680611d995750611d99611d6f565b80611da7575060525460ff16155b611dfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff16158015611e6257605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e6a6123a1565b611e726124b3565b8015610eba57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611ebc5750611ebc611d6f565b80611eca575060525460ff16155b611f1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff16158015611f8557605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611f8d612643565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561134a57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120c957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161208c565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161218457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156122135781600116600114156121c057828482602081106121b657fe5b01555061134a9050565b8381602081106121cc57fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161220857fe5b049150600101612194565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610769576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b60006107698261229161272f565b612bf0565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461235957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61237786828585612cae565b9695505050505050565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123ba57506123ba611d6f565b806123c8575060525460ff16155b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7257605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610eba57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124cc57506124cc611d6f565b806124da575060525460ff16155b61252f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff1615801561259557605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600061259f611acb565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610eba57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff168061265c575061265c611d6f565b8061266a575060525460ff16155b6126bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f51602e913960400191505060405180910390fd5b605254610100900460ff1615801561272557605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e726053612ea5565b612737612ee9565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612ca657600182821c166000868360208110612c1757fe5b015490508160011415612c5a5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c9c565b84868460208110612c6757fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bfa565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f2f6022913960400191505060405180910390fd5b8360ff16601b1480612d3e57508360ff16601c145b612d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f7f6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612def573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e9c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610eba5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212202a8088e8948bf4edaf15233b3fbc09d00171d5d8685febb97f73f128d009a24364736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b5060405161304c38038061304c8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612fd961007360003980610a035280610b69528061104052806116805250612fd96000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638e4e30e011610104578063c19d93fb116100a2578063f2fde38b11610071578063f2fde38b1461064a578063f6d161021461067d578063fa31de0114610685578063fd54b2281461073d576101cf565b8063c19d93fb146105de578063c4d66de814610607578063df034cd01461063a578063ebf0c71714610642576101cf565b80639df6c8e1116100de5780639df6c8e1146104f9578063ab91c7b014610501578063b31c01fb14610509578063b95a2001146105bb576101cf565b80638e4e30e0146103e15780639776120e146104935780639d54f419146104c6576101cf565b80635146366e1161017157806367a6771d1161014b57806367a6771d1461037f578063715018a6146103875780638d3638f41461038f5780638da5cb5b146103b0576101cf565b80635146366e146103275780635221c8181461032f578063522ae00214610377576101cf565b806319d9d21a116101ad57806319d9d21a146102005780632bef2892146102cd57806336e104de146102fe57806345630b1a1461031f576101cf565b806306661abd146101d45780630be4f422146101ee578063146901db146101f6575b600080fd5b6101dc610745565b60408051918252519081900360200190f35b6101dc61074b565b6101fe61075a565b005b6101fe600480360360a081101561021657600080fd5b813591602081019181019060808101606082013564010000000081111561023c57600080fd5b82018360208201111561024e57600080fd5b8035906020019184600183028401116401000000008311171561027057600080fd5b91939092909160208101903564010000000081111561028e57600080fd5b8201836020820111156102a057600080fd5b803590602001918460018302840111640100000000831117156102c257600080fd5b509092509050610764565b6102ea600480360360208110156102e357600080fd5b50356109c1565b604080519115158252519081900360200190f35b6103066109d4565b6040805192835260208301919091528051918290030190f35b6101dc6109fc565b6101dc610a27565b61035a6004803603604081101561034557600080fd5b5063ffffffff81358116916020013516610a31565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101dc610a44565b6101dc610a4a565b6101fe610a50565b610397610b67565b6040805163ffffffff9092168252519081900360200190f35b6103b8610b8b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ea600480360360608110156103f757600080fd5b81359160208101359181019060608101604082013564010000000081111561041e57600080fd5b82018360208201111561043057600080fd5b8035906020019184600183028401116401000000008311171561045257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ba7945050505050565b6101fe600480360360208110156104a957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610df9565b6101fe600480360360208110156104dc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ead565b6103b8610f3d565b6101dc610f5a565b6101fe6004803603606081101561051f57600080fd5b81359160208101359181019060608101604082013564010000000081111561054657600080fd5b82018360208201111561055857600080fd5b8035906020019184600183028401116401000000008311171561057a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f66945050505050565b610397600480360360208110156105d157600080fd5b503563ffffffff16611104565b6105e661111d565b604051808260028111156105f657fe5b815260200191505060405180910390f35b6101fe6004803603602081101561061d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661113e565b6103b8611351565b6101dc61136d565b6101fe6004803603602081101561066057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611379565b6101dc61151b565b6101fe6004803603606081101561069b57600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156106c857600080fd5b8201836020820111156106da57600080fd5b803590602001918460018302840111640100000000831117156106fc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611527945050505050565b6101dc61179d565b60205490565b6000610755610745565b905090565b6107626117a3565b565b600260865474010000000000000000000000000000000000000000900460ff16600281111561078f57fe5b14156107fc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261083e91889188359188908890819084018382808284376000920191909152506117e492505050565b801561088d575061088d86866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117e492505050565b801561089e57508435602086013514155b156109b9576108ab611876565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b60006109ce605383611952565b92915050565b6000806109e160536119c2565b156109f85760875491506109f56053611a02565b90505b9091565b60006107557f0000000000000000000000000000000000000000000000000000000000000000611a3f565b60006107556109fc565b6000610a3d8383611ab4565b9392505050565b61080081565b60875481565b610a58611ace565b73ffffffffffffffffffffffffffffffffffffffff16610a76610b8b565b73ffffffffffffffffffffffffffffffffffffffff1614610af857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610bd457fe5b1415610c4157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610c4c8484846117e4565b610cb757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610d2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610d32605384611952565b610def57610d3e611876565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610dab578181015183820152602001610d93565b50505050905090810190601f168015610dd85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610a3d565b5060009392505050565b610e01611ace565b73ffffffffffffffffffffffffffffffffffffffff16610e1f610b8b565b73ffffffffffffffffffffffffffffffffffffffff1614610ea157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eaa81611ad2565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610f3457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610eaa81611bc0565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b600061075560536119c2565b600260865474010000000000000000000000000000000000000000900460ff166002811115610f9157fe5b1415610ffe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b611009838383610ba7565b15611013576110ff565b600061101f6053611c39565b90508281141561102f5750611035565b50611013565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110c45781810151838201526020016110ac565b50505050905090810190601f1680156110f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff16806111575750611157611d72565b80611165575060525460ff16155b6111ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff1615801561122057605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611228611d83565b61123182611ad2565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b15801561129d57600080fd5b505afa1580156112b1573d6000803e3d6000fd5b505050506040513d60208110156112c757600080fd5b505190506112d481611ea6565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561134d57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b6000610755600061203b565b611381611ace565b73ffffffffffffffffffffffffffffffffffffffff1661139f610b8b565b73ffffffffffffffffffffffffffffffffffffffff161461142157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661148d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612f0c6026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006107556053611a02565b600260865474010000000000000000000000000000000000000000900460ff16600281111561155257fe5b14156115bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561163157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556116a97f0000000000000000000000000000000000000000000000000000000000000000338488888861204e565b805160208201209091506116be600082612124565b6116d16116c961136d565b60539061222c565b506116dc8684611ab4565b67ffffffffffffffff1660016116f0610745565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561175a578181015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60205481565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b6000806117ef6109fc565b858560405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120905061183081612299565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661185682856122ea565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b61187e6117a3565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610def5760008181526001850160205260409020548314156119ba5760019150506109ce565b60010161196a565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166119fa8282612384565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b63ffffffff1660209190911b67ffffffff00000000161790565b3390565b611adb8161239e565b611b4657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c718282612384565b611cdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d2d576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611d7d3061239e565b15905090565b605254610100900460ff1680611d9c5750611d9c611d72565b80611daa575060525460ff16155b611dff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff16158015611e6557605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e6d6123a4565b611e756124b6565b8015610eaa57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611ebf5750611ebf611d72565b80611ecd575060525460ff16155b611f22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff16158015611f8857605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611f90612646565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561134d57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b60006109ce82612049612732565b612bf3565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106120df57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161219a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156122295781600116600114156121d657828482602081106121cc57fe5b01555061134d9050565b8381602081106121e257fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161221e57fe5b0491506001016121aa565b50fe5b81546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000092839004821660010191821690920291909117835581156109ce576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461235c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61237a86828585612cb1565b9695505050505050565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123bd57506123bd611d72565b806123cb575060525460ff16155b612420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7557605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610eaa57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124cf57506124cf611d72565b806124dd575060525460ff16155b612532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff1615801561259857605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006125a2611ace565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610eaa57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff168061265f575061265f611d72565b8061266d575060525460ff16155b6126c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612f54602e913960400191505060405180910390fd5b605254610100900460ff1615801561272857605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e756053612ea8565b61273a612eec565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612ca957600182821c166000868360208110612c1a57fe5b015490508160011415612c5d5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612c9f565b84868460208110612c6a57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612bfd565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f326022913960400191505060405180910390fd5b8360ff16601b1480612d4157508360ff16601c145b612d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f826022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612df2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612e9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610eaa5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220dd3b3def35b97669642f10c94a3634d9ea38d4862414ddc8425f1306aeb521cb64736f6c63430007060033"; export class TestHome__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestMessage__factory.ts b/typescript/typechain/optics-core/factories/TestMessage__factory.ts index af8aa669b..248dfdda4 100644 --- a/typescript/typechain/optics-core/factories/TestMessage__factory.ts +++ b/typescript/typechain/optics-core/factories/TestMessage__factory.ts @@ -72,7 +72,7 @@ const _abi = [ type: "bytes", }, ], - name: "origin", + name: "nonce", outputs: [ { internalType: "uint32", @@ -91,12 +91,12 @@ const _abi = [ type: "bytes", }, ], - name: "recipient", + name: "origin", outputs: [ { - internalType: "bytes32", + internalType: "uint32", name: "", - type: "bytes32", + type: "uint32", }, ], stateMutability: "pure", @@ -110,12 +110,12 @@ const _abi = [ type: "bytes", }, ], - name: "recipientAddress", + name: "recipient", outputs: [ { - internalType: "address", + internalType: "bytes32", name: "", - type: "address", + type: "bytes32", }, ], stateMutability: "pure", @@ -129,12 +129,12 @@ const _abi = [ type: "bytes", }, ], - name: "sender", + name: "recipientAddress", outputs: [ { - internalType: "bytes32", + internalType: "address", name: "", - type: "bytes32", + type: "address", }, ], stateMutability: "pure", @@ -148,12 +148,12 @@ const _abi = [ type: "bytes", }, ], - name: "sequence", + name: "sender", outputs: [ { - internalType: "uint32", + internalType: "bytes32", name: "", - type: "uint32", + type: "bytes32", }, ], stateMutability: "pure", @@ -162,7 +162,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611605806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c97c703a1161005b578063c97c703a14610350578063cb3eb0e11461046b578063d7a7a72c14610511578063f45387ba146105b757610088565b806319b2107b1461008d5780636dc3c4f71461014c578063985a5c3114610204578063c81aa9c8146102aa575b600080fd5b610133600480360360208110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603602081101561016257600080fd5b81019060208101813564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106c4945050505050565b60408051918252519081900360200190f35b6101f26004803603602081101561021a57600080fd5b81019060208101813564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fa945050505050565b610133600480360360208110156102c057600080fd5b8101906020810181356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610730945050505050565b6103f66004803603602081101561036657600080fd5b81019060208101813564010000000081111561038157600080fd5b82018360208201111561039357600080fd5b803590602001918460018302840111640100000000831117156103b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610766945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610430578181015183820152602001610418565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101336004803603602081101561048157600080fd5b81019060208101813564010000000081111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460018302840111640100000000831117156104d057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107c7945050505050565b6101f26004803603602081101561052757600080fd5b81019060208101813564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fd945050505050565b61065d600480360360208110156105cd57600080fd5b8101906020810181356401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184600183028401116401000000008311171561061c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610833945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006106bc6106958383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661088f565b90505b919050565b60006106bc6106d38383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108c0565b60006106bc6107098383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108f1565b60006106bc61073f8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610922565b60606106bc6107a0610779846000610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166109c4565b60006106bc6107d68383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a08565b60006106bc61080c8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a38565b60006106bc6108428383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a80565b81516000906020840161088464ffffffffff85168284610a93565b925050505b92915050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004610af4565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004610af4565b60006106bc604c806109867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616610cc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000610cd4565b60606000806109d284610cc0565b6bffffffffffffffffffffffff16905060405191508192506109f78483602001610d66565b508181016020016040529052919050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004610af4565b60006106bc610a4683610a08565b610a4f846108c0565b610a588561088f565b610a6186610922565b610a6a876108f1565b610a7b610a7689610953565b6109c4565b610e9c565b60006106bc610a8e836108f1565b610ebf565b600080610aa08484610ec2565b9050604051811115610ab0575060005b80610ade577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610aed565b610ae9858585610f34565b9150505b9392505050565b60008160200360080260ff16610b0b858585610b15565b901c949350505050565b600060ff8216610b2757506000610aed565b610b3084610cc0565b6bffffffffffffffffffffffff16610b4b8460ff8516610ec2565b1115610c2a57610b8c610b5d85610f47565b6bffffffffffffffffffffffff16610b7486610cc0565b6bffffffffffffffffffffffff16858560ff16610f5b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bef578181015183820152602001610bd7565b50505050905090810190601f168015610c1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610c87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061150e603a913960400191505060405180910390fd5b600882026000610c9686610f47565b6bffffffffffffffffffffffff1690506000610cb1836110b6565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b600080610ce086610f47565b6bffffffffffffffffffffffff169050610cf9866110ff565b610d0d85610d078489610ec2565b90610ec2565b1115610d3c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d5e565b610d468186610ec2565b9050610d5a8364ffffffffff168286610a93565b9150505b949350505050565b6000610d7183611129565b610dc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806115486028913960400191505060405180910390fd5b610dcf8361113b565b610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611570602b913960400191505060405180910390fd5b6000610e2f84610cc0565b6bffffffffffffffffffffffff1690506000610e4a85610f47565b6bffffffffffffffffffffffff1690506000604051905084811115610e6f5760206060fd5b8285848460045afa50610e92610e8487611178565b64ffffffffff168685610f34565b9695505050505050565b6000610eac87878787878761117e565b8051906020012090509695505050505050565b90565b8181018281101561088957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60781c6bffffffffffffffffffffffff1690565b60606000610f6886611254565b9150506000610f7686611254565b9150506000610f8486611254565b9150506000610f9286611254565b91505083838383604051602001808061159b603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114ed82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061110a82610cc0565b61111383610f47565b016bffffffffffffffffffffffff169050919050565b600061113482611328565b1592915050565b600061114682611178565b64ffffffffff1664ffffffffff1415611161575060006106bf565b600061116c836110ff565b60405110199392505050565b60d81c90565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061120f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111d2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b600080601f5b600f8160ff1611156112bc5760ff600882021684901c61127981611350565b61ffff16841793508160ff1660101461129457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161125a565b50600f5b60ff8160ff1610156113225760ff600882021684901c6112df81611350565b61ffff16831792508160ff166000146112fa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016112c0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061136260048360ff16901c611380565b60ff161760081b62ffff001661137782611380565b60ff1617919050565b600060f08083179060ff8216141561139c5760309150506106bf565b8060ff1660f114156113b25760319150506106bf565b8060ff1660f214156113c85760329150506106bf565b8060ff1660f314156113de5760339150506106bf565b8060ff1660f414156113f45760349150506106bf565b8060ff1660f5141561140a5760359150506106bf565b8060ff1660f614156114205760369150506106bf565b8060ff1660f714156114365760379150506106bf565b8060ff1660f8141561144c5760389150506106bf565b8060ff1660f914156114625760399150506106bf565b8060ff1660fa14156114785760619150506106bf565b8060ff1660fb141561148e5760629150506106bf565b8060ff1660fc14156114a45760639150506106bf565b8060ff1660fd14156114ba5760649150506106bf565b8060ff1660fe14156114d05760659150506106bf565b8060ff1660ff14156114e65760669150506106bf565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122074d297b979753f30009002ffd2a41733619601604e94ac63cda528541a9eb54564736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50611605806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c97c703a1161005b578063c97c703a14610350578063cb3eb0e11461046b578063d7a7a72c14610511578063f45387ba146105b757610088565b80634e7650041461008d5780636dc3c4f71461014c578063985a5c3114610204578063c81aa9c8146102aa575b600080fd5b610133600480360360208110156100a357600080fd5b8101906020810181356401000000008111156100be57600080fd5b8201836020820111156100d057600080fd5b803590602001918460018302840111640100000000831117156100f257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610686945050505050565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603602081101561016257600080fd5b81019060208101813564010000000081111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111640100000000831117156101b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106c4945050505050565b60408051918252519081900360200190f35b6101f26004803603602081101561021a57600080fd5b81019060208101813564010000000081111561023557600080fd5b82018360208201111561024757600080fd5b8035906020019184600183028401116401000000008311171561026957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106fa945050505050565b610133600480360360208110156102c057600080fd5b8101906020810181356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610730945050505050565b6103f66004803603602081101561036657600080fd5b81019060208101813564010000000081111561038157600080fd5b82018360208201111561039357600080fd5b803590602001918460018302840111640100000000831117156103b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610766945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610430578181015183820152602001610418565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101336004803603602081101561048157600080fd5b81019060208101813564010000000081111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460018302840111640100000000831117156104d057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107c7945050505050565b6101f26004803603602081101561052757600080fd5b81019060208101813564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fd945050505050565b61065d600480360360208110156105cd57600080fd5b8101906020810181356401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184600183028401116401000000008311171561061c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610833945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006106bc6106958383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661088f565b90505b919050565b60006106bc6106d38383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108c0565b60006106bc6107098383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166108f1565b60006106bc61073f8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610922565b60606106bc6107a0610779846000610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166109c4565b60006106bc6107d68383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a08565b60006106bc61080c8383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a38565b60006106bc6108428383610869565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016610a80565b81516000906020840161088464ffffffffff85168284610a93565b925050505b92915050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004610af4565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c6020610b15565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004610af4565b60006106bc604c806109867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616610cc0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000610cd4565b60606000806109d284610cc0565b6bffffffffffffffffffffffff16905060405191508192506109f78483602001610d66565b508181016020016040529052919050565b60006106bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004610af4565b60006106bc610a4683610a08565b610a4f846108c0565b610a588561088f565b610a6186610922565b610a6a876108f1565b610a7b610a7689610953565b6109c4565b610e9c565b60006106bc610a8e836108f1565b610ebf565b600080610aa08484610ec2565b9050604051811115610ab0575060005b80610ade577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610aed565b610ae9858585610f34565b9150505b9392505050565b60008160200360080260ff16610b0b858585610b15565b901c949350505050565b600060ff8216610b2757506000610aed565b610b3084610cc0565b6bffffffffffffffffffffffff16610b4b8460ff8516610ec2565b1115610c2a57610b8c610b5d85610f47565b6bffffffffffffffffffffffff16610b7486610cc0565b6bffffffffffffffffffffffff16858560ff16610f5b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bef578181015183820152602001610bd7565b50505050905090810190601f168015610c1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610c87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061150e603a913960400191505060405180910390fd5b600882026000610c9686610f47565b6bffffffffffffffffffffffff1690506000610cb1836110b6565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b600080610ce086610f47565b6bffffffffffffffffffffffff169050610cf9866110ff565b610d0d85610d078489610ec2565b90610ec2565b1115610d3c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d5e565b610d468186610ec2565b9050610d5a8364ffffffffff168286610a93565b9150505b949350505050565b6000610d7183611129565b610dc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806115486028913960400191505060405180910390fd5b610dcf8361113b565b610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611570602b913960400191505060405180910390fd5b6000610e2f84610cc0565b6bffffffffffffffffffffffff1690506000610e4a85610f47565b6bffffffffffffffffffffffff1690506000604051905084811115610e6f5760206060fd5b8285848460045afa50610e92610e8487611178565b64ffffffffff168685610f34565b9695505050505050565b6000610eac87878787878761117e565b8051906020012090509695505050505050565b90565b8181018281101561088957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60781c6bffffffffffffffffffffffff1690565b60606000610f6886611254565b9150506000610f7686611254565b9150506000610f8486611254565b9150506000610f9286611254565b91505083838383604051602001808061159b603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216114ed82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061110a82610cc0565b61111383610f47565b016bffffffffffffffffffffffff169050919050565b600061113482611328565b1592915050565b600061114682611178565b64ffffffffff1664ffffffffff1415611161575060006106bf565b600061116c836110ff565b60405110199392505050565b60d81c90565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061120f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111d2565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b600080601f5b600f8160ff1611156112bc5760ff600882021684901c61127981611350565b61ffff16841793508160ff1660101461129457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161125a565b50600f5b60ff8160ff1610156113225760ff600882021684901c6112df81611350565b61ffff16831792508160ff166000146112fa57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016112c0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061136260048360ff16901c611380565b60ff161760081b62ffff001661137782611380565b60ff1617919050565b600060f08083179060ff8216141561139c5760309150506106bf565b8060ff1660f114156113b25760319150506106bf565b8060ff1660f214156113c85760329150506106bf565b8060ff1660f314156113de5760339150506106bf565b8060ff1660f414156113f45760349150506106bf565b8060ff1660f5141561140a5760359150506106bf565b8060ff1660f614156114205760369150506106bf565b8060ff1660f714156114365760379150506106bf565b8060ff1660f8141561144c5760389150506106bf565b8060ff1660f914156114625760399150506106bf565b8060ff1660fa14156114785760619150506106bf565b8060ff1660fb141561148e5760629150506106bf565b8060ff1660fc14156114a45760639150506106bf565b8060ff1660fd14156114ba5760649150506106bf565b8060ff1660fe14156114d05760659150506106bf565b8060ff1660ff14156114e65760669150506106bf565b5091905056fe2e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122023ec9a276dd3ab95332e32a926f16eecfa6ef76cf430aec2571970e348f879c664736f6c63430007060033"; export class TestMessage__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestReplica__factory.ts b/typescript/typechain/optics-core/factories/TestReplica__factory.ts index d074fdaf4..769612347 100644 --- a/typescript/typechain/optics-core/factories/TestReplica__factory.ts +++ b/typescript/typechain/optics-core/factories/TestReplica__factory.ts @@ -68,7 +68,7 @@ const _abi = [ { indexed: true, internalType: "uint32", - name: "sequence", + name: "nonce", type: "uint32", }, { @@ -189,6 +189,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "confirm", @@ -215,19 +228,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [], - name: "current", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -283,7 +283,7 @@ const _abi = [ }, { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -497,7 +497,7 @@ const _abi = [ type: "bytes32", }, ], - name: "setCurrentRoot", + name: "setCommittedRoot", outputs: [], stateMutability: "nonpayable", type: "function", @@ -674,7 +674,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b506040516135c63803806135c68339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661355d61006960003980610fc05280611056525061355d6000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c8063928bc4b21161012a578063b31c01fb116100bd578063c19d93fb1161008c578063df034cd011610071578063df034cd01461085d578063e7e7a7b71461088e578063f6d16102146108d95761020b565b8063c19d93fb1461084d578063d88beda2146108555761020b565b8063b31c01fb146106cc578063b61c19e81461077e578063b80777ea14610824578063ba739a621461082c5761020b565b80639d54f419116100f95780639d54f4191461066c5780639fa6a6e31461069f578063a3f81d68146106a7578063ab91c7b0146106c45761020b565b8063928bc4b2146104ee578063961681dc1461059457806396ae1a891461059c5780639868a273146106425761020b565b806339992668116101a25780636188af0e116101715780636188af0e146103fa5780637022b58e146104a857806371bfb7b8146104b05780638d3638f4146104cd5761020b565b806339992668146103bf57806345630b1a146103c75780635146366e146103cf57806351d7bcd7146103d75761020b565b806325e3beda116101de57806325e3beda146103205780632bbd59ca1461033a5780632bef289214610378578063371d3071146103955761020b565b8063016bcc3514610210578063146901db1461022f57806314cfabb31461023757806319d9d21a14610253575b600080fd5b61022d6004803603602081101561022657600080fd5b50356108e1565b005b61022d6108fa565b61023f610904565b604080519115158252519081900360200190f35b61022d600480360360a081101561026957600080fd5b813591602081019181019060808101606082013564010000000081111561028f57600080fd5b8201836020820111156102a157600080fd5b803590602001918460018302840111640100000000831117156102c357600080fd5b9193909290916020810190356401000000008111156102e157600080fd5b8201836020820111156102f357600080fd5b8035906020019184600183028401116401000000008311171561031557600080fd5b509092509050610930565b610328610b8d565b60408051918252519081900360200190f35b6103576004803603602081101561035057600080fd5b5035610b93565b6040518082600281111561036757fe5b815260200191505060405180910390f35b61023f6004803603602081101561038e57600080fd5b5035610ba8565b61023f60048036036104408110156103ac57600080fd5b5080359060208101906104200135610bbd565b610328610cdd565b610328610ce3565b610328610cf8565b61022d600480360360208110156103ed57600080fd5b503563ffffffff16610d02565b61022d600480360361044081101561041157600080fd5b81019060208101813564010000000081111561042c57600080fd5b82018360208201111561043e57600080fd5b8035906020019184600183028401116401000000008311171561046057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610d39565b61022d610dc5565b610328600480360360208110156104c657600080fd5b5035610fac565b6104d5610fbe565b6040805163ffffffff9092168252519081900360200190f35b61023f6004803603602081101561050457600080fd5b81019060208101813564010000000081111561051f57600080fd5b82018360208201111561053157600080fd5b8035906020019184600183028401116401000000008311171561055357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fe2945050505050565b6104d561169a565b61023f600480360360208110156105b257600080fd5b8101906020810181356401000000008111156105cd57600080fd5b8201836020820111156105df57600080fd5b8035906020019184600183028401116401000000008311171561060157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116a6945050505050565b610328600480360361044081101561065957600080fd5b50803590602081019061042001356116b1565b61022d6004803603602081101561068257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116ef565b610328611736565b61023f600480360360208110156106bd57600080fd5b503561173c565b610328611763565b61022d600480360360608110156106e257600080fd5b81359160208101359181019060608101604082013564010000000081111561070957600080fd5b82018360208201111561071b57600080fd5b8035906020019184600183028401116401000000008311171561073d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061176f945050505050565b61022d6004803603602081101561079457600080fd5b8101906020810181356401000000008111156107af57600080fd5b8201836020820111156107c157600080fd5b803590602001918460018302840111640100000000831117156107e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a53945050505050565b610328611add565b610834611ae1565b6040805192835260208301919091528051918290030190f35b610357611b2f565b610328611b50565b610865611b57565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61022d600480360360808110156108a457600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff6020820135169060408101359060600135611b73565b610328611d0c565b6035819055600090815260676020526040902060019055565b610902611d18565b565b60006109106001611d59565b1580159061092b575061092b6109266001611d91565b61173c565b905090565b600260345474010000000000000000000000000000000000000000900460ff16600281111561095b57fe5b14156109c857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f8601819004810282018101909252848152610a0a9188918835918890889081908401838280828437600092019190915250611e3292505050565b8015610a595750610a5986866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e3292505050565b8015610a6a57508435602086013514155b15610b8557610a776108fa565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b6000610bb5600183611ec4565b90505b919050565b60008060008581526069602052604090205460ff166002811115610bdd57fe5b14610c4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b6000610c7f858560208060200260405190810160405280929190826020800280828437600092019190915250879150611f409050565b9050610c8a8161173c565b15610cd0575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610cd6565b60009150505b9392505050565b60665481565b60655460009061092b9063ffffffff16611feb565b600061092b610ce3565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055565b610d4b83805190602001208383610bbd565b610db657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610dbf83610fe2565b50505050565b600260345474010000000000000000000000000000000000000000900460ff166002811115610df057fe5b1415610e5d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610e676001611d59565b610ed257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610edf6001611d59565b90505b600081118015610efa5750610efa6109266001611d91565b15610f3257610f096001612060565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610ee2565b81610f9e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610fa6610902565b50603555565b60676020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610fef8382612199565b9050600061101e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166121bd565b9050600061104d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166121fc565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166110a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661222d565b63ffffffff161461111357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160008381526069602052604090205460ff16600281111561113257fe5b1461119e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60685460ff1660011461121257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600083815260696020526040902080549091166002179055620d32e85a10156112c957604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006112f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851661225e565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf8506113407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612271565b61136b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089166122a1565b6113c06113997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008b166122d2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016612343565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114125781810151838201526020016113fa565b50505050905090810190601f16801561143f5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b6020831061150757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016114ca565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d806000811461156a576040519150601f19603f3d011682016040523d82523d6000602084013e61156f565b606091505b50909650905085156115ab5760405184907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a2611664565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff16857fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611629578181015183820152602001611611565b50505050905090810190601f1680156116565780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550919392505050565b60655463ffffffff1681565b6000610bb582610fe2565b60006116e7848460208060200260405190810160405280929190826020800280828437600092019190915250869150611f409050565b949350505050565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60355481565b6000818152606760205260408120548061175a576000915050610bb8565b42101592915050565b600061092b6001611d59565b600260345474010000000000000000000000000000000000000000900460ff16600281111561179a57fe5b141561180757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006118136001611d59565b1115611895576118236001612387565b831461189057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b611905565b826035541461190557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b611910838383611e32565b61197b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b611983610902565b60665460008381526067602052604090204290910190556119a56001836123c4565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b83811015611a145781810151838201526020016119fc565b50505050905090810190601f168015611a415780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000611a5f8282612199565b9050600160696000611a927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166121bd565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115611ad457fe5b02179055505050565b4290565b600080611aee6001611d59565b15611b1657611afd6001611d91565b6000818152606760205260409020549092509050611b2b565b50506035546000818152606760205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff1680611b8c5750611b8c612431565b80611b9a575060005460ff16155b611bef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613416602e913960400191505060405180910390fd5b600054610100900460ff16158015611c5557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c5e84612442565b6068805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8816179055603584905560008481526067602052604090205560668290558015611d0557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b600061092b6001612387565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166116e782826125d8565b6000611d9c826125f2565b15611e0857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611e3d610ce3565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611e7e81612621565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611ea48285612672565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611f34576000818152600185016020526040902054831415611f2c576001915050611f3a565b600101611edc565b50600090505b92915050565b8260005b6020811015611fe357600183821c166000858360208110611f6157fe5b602002015190508160011415611fa75780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611fd9565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611f44565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661209882826125d8565b61210357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215612154576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b8151600090602084016121b464ffffffffff8516828461270c565b95945050505050565b6000806121c983612762565b6bffffffffffffffffffffffff16905060006121e484612776565b6bffffffffffffffffffffffff169091209392505050565b6000610bb57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166024600461278a565b6000610bb57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166028600461278a565b6000610bb561226c836127ab565b6127dc565b6000610bb57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682600461278a565b6000610bb57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206127df565b6000610bb5604c806123057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612776565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff9190911603600061298a565b606060008061235184612776565b6bffffffffffffffffffffffff16905060405191508192506123768483602001612a10565b508181016020016040529052919050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611f3a576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061243c30612b3c565b15905090565b600054610100900460ff168061245b575061245b612431565b80612469575060005460ff16155b6124be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613416602e913960400191505060405180910390fd5b600054610100900460ff1615801561252457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61252c612b42565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156125d457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146126e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61270286828585612c60565b9695505050505050565b6000806127198484612e4e565b9050604051811115612729575060005b80612757577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610cd6565b6121b4858585612ec0565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166127a18585856127df565b901c949350505050565b6000610bb57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206127df565b90565b600060ff82166127f157506000610cd6565b6127fa84612776565b6bffffffffffffffffffffffff166128158460ff8516612e4e565b11156128f45761285661282785612762565b6bffffffffffffffffffffffff1661283e86612776565b6bffffffffffffffffffffffff16858560ff16612ed3565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128b95781810151838201526020016128a1565b50505050905090810190601f1680156128e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115612951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613466603a913960400191505060405180910390fd5b60088202600061296086612762565b6bffffffffffffffffffffffff169050600061297b8361302e565b91909501511695945050505050565b60008061299686612762565b6bffffffffffffffffffffffff1690506129af86613077565b6129c3856129bd8489612e4e565b90612e4e565b11156129f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506116e7565b6129fc8186612e4e565b90506127028364ffffffffff16828661270c565b6000612a1b836130a1565b612a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806134a06028913960400191505060405180910390fd5b612a79836130b3565b612ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806134c8602b913960400191505060405180910390fd5b6000612ad984612776565b6bffffffffffffffffffffffff1690506000612af485612762565b6bffffffffffffffffffffffff1690506000604051905084811115612b195760206060fd5b8285848460045afa50612702612b2e876130f0565b64ffffffffff168685612ec0565b3b151590565b600054610100900460ff1680612b5b5750612b5b612431565b80612b69575060005460ff16155b612bbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613416602e913960400191505060405180910390fd5b600054610100900460ff16158015612c2457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612c2e60016130f6565b8015612c5d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612cdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806133d36022913960400191505060405180910390fd5b8360ff16601b1480612cf057508360ff16601c145b612d45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134446022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612da1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166121b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611f3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612ee08661313a565b9150506000612eee8661313a565b9150506000612efc8661313a565b9150506000612f0a8661313a565b9150508383838360405160200180806134f3603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216133f582397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061308282612776565b61308b83612762565b016bffffffffffffffffffffffff169050919050565b60006130ac8261320e565b1592915050565b60006130be826130f0565b64ffffffffff1664ffffffffff14156130d957506000610bb8565b60006130e483613077565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff16612c5d5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff1611156131a25760ff600882021684901c61315f81613236565b61ffff16841793508160ff1660101461317a57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01613140565b50600f5b60ff8160ff1610156132085760ff600882021684901c6131c581613236565b61ffff16831792508160ff166000146131e057601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016131a6565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061324860048360ff16901c613266565b60ff161760081b62ffff001661325d82613266565b60ff1617919050565b600060f08083179060ff82161415613282576030915050610bb8565b8060ff1660f11415613298576031915050610bb8565b8060ff1660f214156132ae576032915050610bb8565b8060ff1660f314156132c4576033915050610bb8565b8060ff1660f414156132da576034915050610bb8565b8060ff1660f514156132f0576035915050610bb8565b8060ff1660f61415613306576036915050610bb8565b8060ff1660f7141561331c576037915050610bb8565b8060ff1660f81415613332576038915050610bb8565b8060ff1660f91415613348576039915050610bb8565b8060ff1660fa141561335e576061915050610bb8565b8060ff1660fb1415613374576062915050610bb8565b8060ff1660fc141561338a576063915050610bb8565b8060ff1660fd14156133a0576064915050610bb8565b8060ff1660fe14156133b6576065915050610bb8565b8060ff1660ff14156133cc576066915050610bb8565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220775d9f3727dcd470375356525cf1be617ec507730f57febe5262fe1943b47a9f64736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b506040516135c03803806135c08339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661355761006960003980610fad5280610fe552506135576000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c8063928bc4b21161012a578063b31c01fb116100bd578063c19d93fb1161008c578063df034cd011610071578063df034cd01461085d578063e7e7a7b71461088e578063f6d16102146108d95761020b565b8063c19d93fb1461084d578063d88beda2146108555761020b565b8063b31c01fb146106cc578063b61c19e81461077e578063b80777ea14610824578063ba739a621461082c5761020b565b80639d54f419116100f95780639d54f41914610657578063a33a31131461068a578063a3f81d68146106a7578063ab91c7b0146106c45761020b565b8063928bc4b2146104d9578063961681dc1461057f57806396ae1a89146105875780639868a2731461062d5761020b565b806345630b1a116101a257806367a6771d1161017157806367a6771d1461048b5780637022b58e1461049357806371bfb7b81461049b5780638d3638f4146104b85761020b565b806345630b1a146103aa5780635146366e146103b257806351d7bcd7146103ba5780636188af0e146103dd5761020b565b80632bbd59ca116101de5780632bbd59ca1461031d5780632bef28921461035b578063371d30711461037857806339992668146103a25761020b565b8063146901db1461021057806314cfabb31461021a57806319d9d21a1461023657806325e3beda14610303575b600080fd5b6102186108e1565b005b6102226108eb565b604080519115158252519081900360200190f35b610218600480360360a081101561024c57600080fd5b813591602081019181019060808101606082013564010000000081111561027257600080fd5b82018360208201111561028457600080fd5b803590602001918460018302840111640100000000831117156102a657600080fd5b9193909290916020810190356401000000008111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460018302840111640100000000831117156102f857600080fd5b509092509050610917565b61030b610b74565b60408051918252519081900360200190f35b61033a6004803603602081101561033357600080fd5b5035610b7a565b6040518082600281111561034a57fe5b815260200191505060405180910390f35b6102226004803603602081101561037157600080fd5b5035610b8f565b610222600480360361044081101561038f57600080fd5b5080359060208101906104200135610ba4565b61030b610cc4565b61030b610cca565b61030b610cdf565b610218600480360360208110156103d057600080fd5b503563ffffffff16610ce9565b61021860048036036104408110156103f457600080fd5b81019060208101813564010000000081111561040f57600080fd5b82018360208201111561042157600080fd5b8035906020019184600183028401116401000000008311171561044357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610d20565b61030b610dac565b610218610db2565b61030b600480360360208110156104b157600080fd5b5035610f99565b6104c0610fab565b6040805163ffffffff9092168252519081900360200190f35b610222600480360360208110156104ef57600080fd5b81019060208101813564010000000081111561050a57600080fd5b82018360208201111561051c57600080fd5b8035906020019184600183028401116401000000008311171561053e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fcf945050505050565b6104c0611681565b6102226004803603602081101561059d57600080fd5b8101906020810181356401000000008111156105b857600080fd5b8201836020820111156105ca57600080fd5b803590602001918460018302840111640100000000831117156105ec57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061168d945050505050565b61030b600480360361044081101561064457600080fd5b5080359060208101906104200135611698565b6102186004803603602081101561066d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116d6565b610218600480360360208110156106a057600080fd5b503561171d565b610222600480360360208110156106bd57600080fd5b5035611736565b61030b61175d565b610218600480360360608110156106e257600080fd5b81359160208101359181019060608101604082013564010000000081111561070957600080fd5b82018360208201111561071b57600080fd5b8035906020019184600183028401116401000000008311171561073d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611769945050505050565b6102186004803603602081101561079457600080fd5b8101906020810181356401000000008111156107af57600080fd5b8201836020820111156107c157600080fd5b803590602001918460018302840111640100000000831117156107e357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a4d945050505050565b61030b611ad7565b610834611adb565b6040805192835260208301919091528051918290030190f35b61033a611b29565b61030b611b4a565b610865611b51565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610218600480360360808110156108a457600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff6020820135169060408101359060600135611b6d565b61030b611d06565b6108e9611d12565b565b60006108f76001611d53565b15801590610912575061091261090d6001611d8b565b611736565b905090565b600260345474010000000000000000000000000000000000000000900460ff16600281111561094257fe5b14156109af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526109f19188918835918890889081908401838280828437600092019190915250611e2c92505050565b8015610a405750610a4086866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e2c92505050565b8015610a5157508435602086013514155b15610b6c57610a5e6108e1565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b6000610b9c600183611ebe565b90505b919050565b60008060008581526069602052604090205460ff166002811115610bc457fe5b14610c3057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b6000610c66858560208060200260405190810160405280929190826020800280828437600092019190915250879150611f3a9050565b9050610c7181611736565b15610cb7575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610cbd565b60009150505b9392505050565b60665481565b6065546000906109129063ffffffff16611fe5565b6000610912610cca565b606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055565b610d3283805190602001208383610ba4565b610d9d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610da683610fcf565b50505050565b60355481565b600260345474010000000000000000000000000000000000000000900460ff166002811115610ddd57fe5b1415610e4a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610e546001611d53565b610ebf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610ecc6001611d53565b90505b600081118015610ee75750610ee761090d6001611d8b565b15610f1f57610ef6600161205a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610ecf565b81610f8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610f936108e9565b50603555565b60686020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610fdc8382612193565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166110307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166121b7565b63ffffffff16146110a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b60006110cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166121e8565b9050600160008281526069602052604090205460ff1660028111156110f057fe5b1461115c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60675460ff166001146111d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600082815260696020526040902080549091166002179055620d32e85a101561128757604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006112b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416612227565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf8506112fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871661223a565b6113297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000881661226a565b61137e6113577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a1661229b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001661230c565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113d05781810151838201526020016113b8565b50505050905090810190601f1680156113fd5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b602083106114c557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611488565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611528576040519150601f19603f3d011682016040523d82523d6000602084013e61152d565b606091505b50909550905084156115695760405183907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a261164c565b73ffffffffffffffffffffffffffffffffffffffff82166115ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612350565b63ffffffff16847fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b838110156116115781810151838201526020016115f9565b50505050905090810190601f16801561163e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509092915050565b60655463ffffffff1681565b6000610b9c82610fcf565b60006116ce848460208060200260405190810160405280929190826020800280828437600092019190915250869150611f3a9050565b949350505050565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6035819055600090815260686020526040902060019055565b60008181526068602052604081205480611754576000915050610b9f565b42101592915050565b60006109126001611d53565b600260345474010000000000000000000000000000000000000000900460ff16600281111561179457fe5b141561180157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b600061180d6001611d53565b111561188f5761181d6001612381565b831461188a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b6118ff565b60355483146118ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b61190a838383611e2c565b61197557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61197d6108e9565b606654600083815260686020526040902042909101905561199f6001836123be565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b83811015611a0e5781810151838201526020016119f6565b50505050905090810190601f168015611a3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000611a598282612193565b9050600160696000611a8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166121e8565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115611ace57fe5b02179055505050565b4290565b600080611ae86001611d53565b15611b1057611af76001611d8b565b6000818152606860205260409020549092509050611b25565b50506035546000818152606860205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff1680611b865750611b8661242b565b80611b94575060005460ff16155b611be9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613410602e913960400191505060405180910390fd5b600054610100900460ff16158015611c4f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611c588461243c565b6067805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8816179055603584905560008481526068602052604090205560668290558015611cff57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006109126001612381565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166116ce82826125d2565b6000611d96826125ec565b15611e0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611e37610cca565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611e788161261b565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611e9e828561266c565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611f2e576000818152600185016020526040902054831415611f26576001915050611f34565b600101611ed6565b50600090505b92915050565b8260005b6020811015611fdd57600183821c166000858360208110611f5b57fe5b602002015190508160011415611fa15780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611fd3565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611f3e565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661209282826125d2565b6120fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff811660009081526001850160205260409020549250821561214e576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b8151600090602084016121ae64ffffffffff85168284612706565b95945050505050565b6000610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166028600461275c565b6000806121f48361277d565b6bffffffffffffffffffffffff169050600061220f84612791565b6bffffffffffffffffffffffff169091209392505050565b6000610b9c612235836127a5565b6127d6565b6000610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831682600461275c565b6000610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206127d9565b6000610b9c604c806122ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612791565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff91909116036000612984565b606060008061231a84612791565b6bffffffffffffffffffffffff169050604051915081925061233f8483602001612a0a565b508181016020016040529052919050565b6000610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166024600461275c565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611f34576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061243630612b36565b15905090565b600054610100900460ff1680612455575061245561242b565b80612463575060005460ff16155b6124b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613410602e913960400191505060405180910390fd5b600054610100900460ff1615801561251e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612526612b3c565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156125ce57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146126de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6126fc86828585612c5a565b9695505050505050565b6000806127138484612e48565b9050604051811115612723575060005b80612751577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610cbd565b6121ae858585612eba565b60008160200360080260ff166127738585856127d9565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b6000610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206127d9565b90565b600060ff82166127eb57506000610cbd565b6127f484612791565b6bffffffffffffffffffffffff1661280f8460ff8516612e48565b11156128ee576128506128218561277d565b6bffffffffffffffffffffffff1661283886612791565b6bffffffffffffffffffffffff16858560ff16612ecd565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128b357818101518382015260200161289b565b50505050905090810190601f1680156128e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff16111561294b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613460603a913960400191505060405180910390fd5b60088202600061295a8661277d565b6bffffffffffffffffffffffff169050600061297583613028565b91909501511695945050505050565b6000806129908661277d565b6bffffffffffffffffffffffff1690506129a986613071565b6129bd856129b78489612e48565b90612e48565b11156129ec577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506116ce565b6129f68186612e48565b90506126fc8364ffffffffff168286612706565b6000612a158361309b565b612a6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061349a6028913960400191505060405180910390fd5b612a73836130ad565b612ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806134c2602b913960400191505060405180910390fd5b6000612ad384612791565b6bffffffffffffffffffffffff1690506000612aee8561277d565b6bffffffffffffffffffffffff1690506000604051905084811115612b135760206060fd5b8285848460045afa506126fc612b28876130ea565b64ffffffffff168685612eba565b3b151590565b600054610100900460ff1680612b555750612b5561242b565b80612b63575060005460ff16155b612bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613410602e913960400191505060405180910390fd5b600054610100900460ff16158015612c1e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612c2860016130f0565b8015612c5757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612cd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806133cd6022913960400191505060405180910390fd5b8360ff16601b1480612cea57508360ff16601c145b612d3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061343e6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612d9b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166121ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611f3457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612eda86613134565b9150506000612ee886613134565b9150506000612ef686613134565b9150506000612f0486613134565b9150508383838360405160200180806134ed603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a82015260500160216133ef82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600061307c82612791565b6130858361277d565b016bffffffffffffffffffffffff169050919050565b60006130a682613208565b1592915050565b60006130b8826130ea565b64ffffffffff1664ffffffffff14156130d357506000610b9f565b60006130de83613071565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff16612c575780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff16111561319c5760ff600882021684901c61315981613230565b61ffff16841793508160ff1660101461317457601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161313a565b50600f5b60ff8160ff1610156132025760ff600882021684901c6131bf81613230565b61ffff16831792508160ff166000146131da57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016131a0565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b600061324260048360ff16901c613260565b60ff161760081b62ffff001661325782613260565b60ff1617919050565b600060f08083179060ff8216141561327c576030915050610b9f565b8060ff1660f11415613292576031915050610b9f565b8060ff1660f214156132a8576032915050610b9f565b8060ff1660f314156132be576033915050610b9f565b8060ff1660f414156132d4576034915050610b9f565b8060ff1660f514156132ea576035915050610b9f565b8060ff1660f61415613300576036915050610b9f565b8060ff1660f71415613316576037915050610b9f565b8060ff1660f8141561332c576038915050610b9f565b8060ff1660f91415613342576039915050610b9f565b8060ff1660fa1415613358576061915050610b9f565b8060ff1660fb141561336e576062915050610b9f565b8060ff1660fc1415613384576063915050610b9f565b8060ff1660fd141561339a576064915050610b9f565b8060ff1660fe14156133b0576065915050610b9f565b8060ff1660ff14156133c6576066915050610b9f565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212200ba8f047dfff03ba6224f634bb9399f2b94a498400b3975d85c819c73c7a811164736f6c63430007060033"; export class TestReplica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/TestXAppConnectionManager__factory.ts b/typescript/typechain/optics-core/factories/TestXAppConnectionManager__factory.ts index 8f3a4ce10..41ac08777 100644 --- a/typescript/typechain/optics-core/factories/TestXAppConnectionManager__factory.ts +++ b/typescript/typechain/optics-core/factories/TestXAppConnectionManager__factory.ts @@ -129,25 +129,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - ], - name: "isOwner", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -383,7 +364,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6115ff8061007d6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff162146103db578063e0e7a913146103fe578063f2fde38b146104b6578063f31faefb146104e957610100565b80638da5cb5b146103515780638f5d90e014610359578063916c34701461038c5780639fa92f9d146103d357610100565b80635f8b1dba116100d35780635f8b1dba146102c05780636ef0f37f1461030c578063715018a6146103415780638d3638f41461034957610100565b806323738500146101055780632f54bf6e14610207578063427ebef51461024e5780635190bc531461028d575b600080fd5b6101de6004803603608081101561011b57600080fd5b63ffffffff8235169173ffffffffffffffffffffffffffffffffffffffff60208201358116926040830135909116919081019060808101606082013564010000000081111561016957600080fd5b82018360208201111561017b57600080fd5b8035906020019184600183028401116401000000008311171561019d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610528945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023a6004803603602081101561021d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661054f565b604080519115158252519081900360200190f35b61023a6004803603604081101561026457600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff1661058e565b61023a600480360360208110156102a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105ce565b6102f3600480360360208110156102d657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105fe565b6040805163ffffffff9092168252519081900360200190f35b61033f6004803603602081101561032257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610616565b005b61033f610705565b6102f361081c565b6101de6108b8565b61033f6004803603602081101561036f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166108d4565b61033f600480360360608110156103a257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610988565b6101de610ad6565b6101de600480360360208110156103f157600080fd5b503563ffffffff16610af2565b61033f6004803603606081101561041457600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561044157600080fd5b82018360208201111561045357600080fd5b8035906020019184600183028401116401000000008311171561047557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b1a945050505050565b61033f600480360360208110156104cc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d93565b61033f600480360360408110156104ff57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610f34565b600061054685610537866110a8565b610540866110a8565b856110c1565b95945050505050565b60006105596108b8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205463ffffffff16151590565b60016020526000908152604090205463ffffffff1681565b61061e6111b7565b73ffffffffffffffffffffffffffffffffffffffff1661063c6108b8565b73ffffffffffffffffffffffffffffffffffffffff16146106be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61070d6111b7565b73ffffffffffffffffffffffffffffffffffffffff1661072b6108b8565b73ffffffffffffffffffffffffffffffffffffffff16146107ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600354604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561088757600080fd5b505afa15801561089b573d6000803e3d6000fd5b505050506040513d60208110156108b157600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6108dc6111b7565b73ffffffffffffffffffffffffffffffffffffffff166108fa6108b8565b73ffffffffffffffffffffffffffffffffffffffff161461097c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610985816111bb565b50565b6109906111b7565b73ffffffffffffffffffffffffffffffffffffffff166109ae6108b8565b73ffffffffffffffffffffffffffffffffffffffff1614610a3057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610bb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610bbb83611283565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b505050506040513d6020811015610c4157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610cc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610cdb85610cd4846110a8565b86866110c1565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610d8c826111bb565b5050505050565b610d9b6111b7565b73ffffffffffffffffffffffffffffffffffffffff16610db96108b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806115606026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610f3c6111b7565b73ffffffffffffffffffffffffffffffffffffffff16610f5a6108b8565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610fe5826111bb565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600283529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000806110cd85611283565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561111257600080fd5b505afa158015611126573d6000803e3d6000fd5b505050506040513d602081101561113c57600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506111a081611286565b90506111ac81856112d7565b979650505050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600160208181526040808420805463ffffffff168086526002845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461134957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61136786828585611371565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115866022913960400191505060405180910390fd5b8360ff16601b148061140157508360ff16601c145b611456576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115a86022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114b2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661054657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220acb0dd56db63f20ae3f7be2badaa5e1383d3667337c1a83b8c0e5fd54a503ea264736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6115828061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff1621461039d578063e0e7a913146103c0578063f2fde38b14610478578063f31faefb146104ab576100f5565b80638da5cb5b146103135780638f5d90e01461031b578063916c34701461034e5780639fa92f9d14610395576100f5565b80635f8b1dba116100d35780635f8b1dba146102825780636ef0f37f146102ce578063715018a6146103035780638d3638f41461030b576100f5565b806323738500146100fa578063427ebef5146101fc5780635190bc531461024f575b600080fd5b6101d36004803603608081101561011057600080fd5b63ffffffff8235169173ffffffffffffffffffffffffffffffffffffffff60208201358116926040830135909116919081019060808101606082013564010000000081111561015e57600080fd5b82018360208201111561017057600080fd5b8035906020019184600183028401116401000000008311171561019257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104ea945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023b6004803603604081101561021257600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610511565b604080519115158252519081900360200190f35b61023b6004803603602081101561026557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610551565b6102b56004803603602081101561029857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610581565b6040805163ffffffff9092168252519081900360200190f35b610301600480360360208110156102e457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610599565b005b610301610688565b6102b561079f565b6101d361083b565b6103016004803603602081101561033157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610857565b6103016004803603606081101561036457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561090b565b6101d3610a59565b6101d3600480360360208110156103b357600080fd5b503563ffffffff16610a75565b610301600480360360608110156103d657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561040357600080fd5b82018360208201111561041557600080fd5b8035906020019184600183028401116401000000008311171561043757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9d945050505050565b6103016004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d16565b610301600480360360408110156104c157600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610eb7565b6000610508856104f98661102b565b6105028661102b565b85611044565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b6105a161113a565b73ffffffffffffffffffffffffffffffffffffffff166105bf61083b565b73ffffffffffffffffffffffffffffffffffffffff161461064157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61069061113a565b73ffffffffffffffffffffffffffffffffffffffff166106ae61083b565b73ffffffffffffffffffffffffffffffffffffffff161461073057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561080a57600080fd5b505afa15801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61085f61113a565b73ffffffffffffffffffffffffffffffffffffffff1661087d61083b565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109088161113e565b50565b61091361113a565b73ffffffffffffffffffffffffffffffffffffffff1661093161083b565b73ffffffffffffffffffffffffffffffffffffffff16146109b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610b3557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610b3e83611206565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610c4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610c5e85610c578461102b565b8686611044565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610d0f8261113e565b5050505050565b610d1e61113a565b73ffffffffffffffffffffffffffffffffffffffff16610d3c61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610e2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114e36026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ebf61113a565b73ffffffffffffffffffffffffffffffffffffffff16610edd61083b565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f688261113e565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061105085611206565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561109557600080fd5b505afa1580156110a9573d6000803e3d6000fd5b505050506040513d60208110156110bf57600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b16828401526044808301899052835180840390910181526064909201909252805191012090915061112381611209565b905061112f818561125a565b979650505050505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146112cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6112ea868285856112f4565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561136f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115096022913960400191505060405180910390fd5b8360ff16601b148061138457508360ff16601c145b6113d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061152b6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611435573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661050857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220ceb229f702dd2136b8a279ac67f5e36feb54aff957d702a7be4a9413656b110e64736f6c63430007060033"; export class TestXAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/UpdaterManager__factory.ts b/typescript/typechain/optics-core/factories/UpdaterManager__factory.ts index 69ad8d761..66f698ad3 100644 --- a/typescript/typechain/optics-core/factories/UpdaterManager__factory.ts +++ b/typescript/typechain/optics-core/factories/UpdaterManager__factory.ts @@ -160,7 +160,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220f32634f6f95f30cdd9d998e3651273e324c96932ae4a784da36e5b980dcf004664736f6c63430007060033"; + "0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212205c2149b7ce67b5979e106305ae0e594b1b764f5e0b7b5a334af51c14885e2b1d64736f6c63430007060033"; export class UpdaterManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-core/factories/XAppConnectionManager__factory.ts b/typescript/typechain/optics-core/factories/XAppConnectionManager__factory.ts index cfe47a53f..ae3395cdc 100644 --- a/typescript/typechain/optics-core/factories/XAppConnectionManager__factory.ts +++ b/typescript/typechain/optics-core/factories/XAppConnectionManager__factory.ts @@ -129,25 +129,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - ], - name: "isOwner", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -349,7 +330,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114fd8061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff162146102f7578063e0e7a9131461031a578063f2fde38b146103d2578063f31faefb14610405576100f5565b80638da5cb5b146102445780638f5d90e014610275578063916c3470146102a85780639fa92f9d146102ef576100f5565b80635f8b1dba116100d35780635f8b1dba146101b35780636ef0f37f146101ff578063715018a6146102345780638d3638f41461023c576100f5565b80632f54bf6e146100fa578063427ebef5146101415780635190bc5314610180575b600080fd5b61012d6004803603602081101561011057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610444565b604080519115158252519081900360200190f35b61012d6004803603604081101561015757600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610483565b61012d6004803603602081101561019657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104c3565b6101e6600480360360208110156101c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f3565b6040805163ffffffff9092168252519081900360200190f35b6102326004803603602081101561021557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661050b565b005b6102326105fa565b6101e6610711565b61024c6107ad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102326004803603602081101561028b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107c9565b610232600480360360608110156102be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561087d565b61024c6109cb565b61024c6004803603602081101561030d57600080fd5b503563ffffffff166109e7565b6102326004803603606081101561033057600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184600183028401116401000000008311171561039157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a0f945050505050565b610232600480360360208110156103e857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c88565b6102326004803603604081101561041b57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610e29565b600061044e6107ad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205463ffffffff16151590565b60016020526000908152604090205463ffffffff1681565b610513610f9d565b73ffffffffffffffffffffffffffffffffffffffff166105316107ad565b73ffffffffffffffffffffffffffffffffffffffff16146105b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610602610f9d565b73ffffffffffffffffffffffffffffffffffffffff166106206107ad565b73ffffffffffffffffffffffffffffffffffffffff16146106a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600354604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561077c57600080fd5b505afa158015610790573d6000803e3d6000fd5b505050506040513d60208110156107a657600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6107d1610f9d565b73ffffffffffffffffffffffffffffffffffffffff166107ef6107ad565b73ffffffffffffffffffffffffffffffffffffffff161461087157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087a81610fa1565b50565b610885610f9d565b73ffffffffffffffffffffffffffffffffffffffff166108a36107ad565b73ffffffffffffffffffffffffffffffffffffffff161461092557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610aa757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610ab083611069565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0c57600080fd5b505afa158015610b20573d6000803e3d6000fd5b505050506040513d6020811015610b3657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610bd085610bc98461106c565b8686611085565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610c7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c8182610fa1565b5050505050565b610c90610f9d565b73ffffffffffffffffffffffffffffffffffffffff16610cae6107ad565b73ffffffffffffffffffffffffffffffffffffffff1614610d3057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061145e6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610e31610f9d565b73ffffffffffffffffffffffffffffffffffffffff16610e4f6107ad565b73ffffffffffffffffffffffffffffffffffffffff1614610ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eda82610fa1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600283529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600160208181526040808420805463ffffffff168086526002845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061109185611069565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d657600080fd5b505afa1580156110ea573d6000803e3d6000fd5b505050506040513d602081101561110057600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506111648161117b565b905061117081856111cc565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461123e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61125c86828585611266565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114846022913960400191505060405180910390fd5b8360ff16601b14806112f657508360ff16601c145b61134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114a66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156113a7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661145457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212203e0017d8dd8e7f3777b0cab7f59fe9297b72983f398e5611294290a10d2c144764736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220a176bd501c77a1e00c6b73970c66dcab483846cae3bd248294bf770a1d487a4e64736f6c63430007060033"; export class XAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/Common.d.ts b/typescript/typechain/optics-xapps/Common.d.ts index b3f804812..5ef8363a1 100644 --- a/typescript/typechain/optics-xapps/Common.d.ts +++ b/typescript/typechain/optics-xapps/Common.d.ts @@ -21,7 +21,7 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface CommonInterface extends ethers.utils.Interface { functions: { - "current()": FunctionFragment; + "committedRoot()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "localDomain()": FunctionFragment; @@ -32,7 +32,10 @@ interface CommonInterface extends ethers.utils.Interface { "updater()": FunctionFragment; }; - encodeFunctionData(functionFragment: "current", values?: undefined): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -57,7 +60,10 @@ interface CommonInterface extends ethers.utils.Interface { encodeFunctionData(functionFragment: "state", values?: undefined): string; encodeFunctionData(functionFragment: "updater", values?: undefined): string; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -135,7 +141,7 @@ export class Common extends BaseContract { interface: CommonInterface; functions: { - current(overrides?: CallOverrides): Promise<[string]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; doubleUpdate( _oldRoot: BytesLike, @@ -163,7 +169,7 @@ export class Common extends BaseContract { updater(overrides?: CallOverrides): Promise<[string]>; }; - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -188,7 +194,7 @@ export class Common extends BaseContract { updater(overrides?: CallOverrides): Promise; callStatic: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -249,7 +255,7 @@ export class Common extends BaseContract { }; estimateGas: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -278,7 +284,7 @@ export class Common extends BaseContract { }; populateTransaction: { - current(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; doubleUpdate( _oldRoot: BytesLike, diff --git a/typescript/typechain/optics-xapps/Home.d.ts b/typescript/typechain/optics-xapps/Home.d.ts index 3c075105f..e0ff1df4e 100644 --- a/typescript/typechain/optics-xapps/Home.d.ts +++ b/typescript/typechain/optics-xapps/Home.d.ts @@ -22,21 +22,21 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface HomeInterface extends ethers.utils.Interface { functions: { "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; + "committedRoot()": FunctionFragment; "count()": FunctionFragment; - "current()": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; - "enqueue(uint32,bytes32,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "improperUpdate(bytes32,bytes32,bytes)": FunctionFragment; "initialize(address)": FunctionFragment; "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; "owner()": FunctionFragment; "queueContains(bytes32)": FunctionFragment; "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; "renounceOwnership()": FunctionFragment; "root()": FunctionFragment; - "sequences(uint32)": FunctionFragment; "setUpdater(address)": FunctionFragment; "setUpdaterManager(address)": FunctionFragment; "state()": FunctionFragment; @@ -52,16 +52,19 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", values?: undefined ): string; - encodeFunctionData(functionFragment: "count", values?: undefined): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( - functionFragment: "doubleUpdate", - values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + functionFragment: "committedRoot", + values?: undefined ): string; + encodeFunctionData(functionFragment: "count", values?: undefined): string; encodeFunctionData( - functionFragment: "enqueue", + functionFragment: "dispatch", values: [BigNumberish, BytesLike, BytesLike] ): string; + encodeFunctionData( + functionFragment: "doubleUpdate", + values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] + ): string; encodeFunctionData( functionFragment: "homeDomainHash", values?: undefined @@ -75,6 +78,10 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "localDomain", values?: undefined ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData( functionFragment: "queueContains", @@ -90,10 +97,6 @@ interface HomeInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData(functionFragment: "root", values?: undefined): string; - encodeFunctionData( - functionFragment: "sequences", - values: [BigNumberish] - ): string; encodeFunctionData(functionFragment: "setUpdater", values: [string]): string; encodeFunctionData( functionFragment: "setUpdaterManager", @@ -123,13 +126,16 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "MAX_MESSAGE_BODY_BYTES", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike ): Result; - decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result; decodeFunctionResult( functionFragment: "homeDomainHash", data: BytesLike @@ -143,6 +149,7 @@ interface HomeInterface extends ethers.utils.Interface { functionFragment: "localDomain", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult( functionFragment: "queueContains", @@ -158,7 +165,6 @@ interface HomeInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sequences", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result; decodeFunctionResult( functionFragment: "setUpdaterManager", @@ -182,7 +188,7 @@ interface HomeInterface extends ethers.utils.Interface { ): Result; events: { - "Dispatch(uint256,uint64,bytes32,bytes32,bytes)": EventFragment; + "Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment; "DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment; "ImproperUpdate(bytes32,bytes32,bytes)": EventFragment; "NewUpdater(address)": EventFragment; @@ -248,9 +254,16 @@ export class Home extends BaseContract { functions: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + count(overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -260,13 +273,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise<[string]>; improperUpdate( @@ -283,6 +289,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise<[number]>; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + owner(overrides?: CallOverrides): Promise<[string]>; queueContains( @@ -300,8 +308,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise<[string]>; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -316,7 +322,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -328,7 +334,7 @@ export class Home extends BaseContract { ): Promise<[BigNumber] & { count: BigNumber }>; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -341,9 +347,16 @@ export class Home extends BaseContract { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -353,13 +366,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -376,6 +382,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; @@ -390,8 +398,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -406,7 +412,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -416,7 +422,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -429,9 +435,16 @@ export class Home extends BaseContract { callStatic: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: CallOverrides + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -441,13 +454,6 @@ export class Home extends BaseContract { overrides?: CallOverrides ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: CallOverrides - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -464,6 +470,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -479,8 +487,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - setUpdater(_updater: string, overrides?: CallOverrides): Promise; setUpdaterManager( @@ -492,7 +498,7 @@ export class Home extends BaseContract { suggestUpdate( overrides?: CallOverrides - ): Promise<[string, string] & { _current: string; _new: string }>; + ): Promise<[string, string] & { _committedRoot: string; _new: string }>; transferOwnership( newOwner: string, @@ -502,7 +508,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: CallOverrides @@ -515,18 +521,18 @@ export class Home extends BaseContract { filters: { Dispatch( + messageHash?: BytesLike | null, leafIndex?: BigNumberish | null, - destinationAndSequence?: BigNumberish | null, - leaf?: BytesLike | null, - current?: null, + destinationAndNonce?: BigNumberish | null, + committedRoot?: null, message?: null ): TypedEventFilter< - [BigNumber, BigNumber, string, string, string], + [string, BigNumber, BigNumber, string, string], { + messageHash: string; leafIndex: BigNumber; - destinationAndSequence: BigNumber; - leaf: string; - current: string; + destinationAndNonce: BigNumber; + committedRoot: string; message: string; } >; @@ -596,9 +602,16 @@ export class Home extends BaseContract { estimateGas: { MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -608,13 +621,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -631,6 +637,8 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -648,11 +656,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -675,7 +678,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } @@ -691,9 +694,16 @@ export class Home extends BaseContract { overrides?: CallOverrides ): Promise; + committedRoot(overrides?: CallOverrides): Promise; + count(overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; + dispatch( + _destinationDomain: BigNumberish, + _recipientAddress: BytesLike, + _messageBody: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; doubleUpdate( _oldRoot: BytesLike, @@ -703,13 +713,6 @@ export class Home extends BaseContract { overrides?: Overrides & { from?: string | Promise } ): Promise; - enqueue( - _destinationDomain: BigNumberish, - _recipientAddress: BytesLike, - _messageBody: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - homeDomainHash(overrides?: CallOverrides): Promise; improperUpdate( @@ -726,6 +729,11 @@ export class Home extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + owner(overrides?: CallOverrides): Promise; queueContains( @@ -743,11 +751,6 @@ export class Home extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - setUpdater( _updater: string, overrides?: Overrides & { from?: string | Promise } @@ -770,7 +773,7 @@ export class Home extends BaseContract { tree(overrides?: CallOverrides): Promise; update( - _currentRoot: BytesLike, + _committedRoot: BytesLike, _newRoot: BytesLike, _signature: BytesLike, overrides?: Overrides & { from?: string | Promise } diff --git a/typescript/typechain/optics-xapps/MockCore.d.ts b/typescript/typechain/optics-xapps/MockCore.d.ts index 6558892db..ff52c908c 100644 --- a/typescript/typechain/optics-xapps/MockCore.d.ts +++ b/typescript/typechain/optics-xapps/MockCore.d.ts @@ -23,15 +23,15 @@ interface MockCoreInterface extends ethers.utils.Interface { functions: { "MAX_MESSAGE_BODY_BYTES()": FunctionFragment; "count()": FunctionFragment; - "enqueue(uint32,bytes32,bytes)": FunctionFragment; + "dispatch(uint32,bytes32,bytes)": FunctionFragment; "home()": FunctionFragment; "isReplica(address)": FunctionFragment; "localDomain()": FunctionFragment; + "nonces(uint32)": FunctionFragment; "queueContains(bytes32)": FunctionFragment; "queueEnd()": FunctionFragment; "queueLength()": FunctionFragment; "root()": FunctionFragment; - "sequences(uint32)": FunctionFragment; "tree()": FunctionFragment; }; @@ -41,7 +41,7 @@ interface MockCoreInterface extends ethers.utils.Interface { ): string; encodeFunctionData(functionFragment: "count", values?: undefined): string; encodeFunctionData( - functionFragment: "enqueue", + functionFragment: "dispatch", values: [BigNumberish, BytesLike, BytesLike] ): string; encodeFunctionData(functionFragment: "home", values?: undefined): string; @@ -50,6 +50,10 @@ interface MockCoreInterface extends ethers.utils.Interface { functionFragment: "localDomain", values?: undefined ): string; + encodeFunctionData( + functionFragment: "nonces", + values: [BigNumberish] + ): string; encodeFunctionData( functionFragment: "queueContains", values: [BytesLike] @@ -60,10 +64,6 @@ interface MockCoreInterface extends ethers.utils.Interface { values?: undefined ): string; encodeFunctionData(functionFragment: "root", values?: undefined): string; - encodeFunctionData( - functionFragment: "sequences", - values: [BigNumberish] - ): string; encodeFunctionData(functionFragment: "tree", values?: undefined): string; decodeFunctionResult( @@ -71,13 +71,14 @@ interface MockCoreInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "count", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; decodeFunctionResult( functionFragment: "localDomain", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult( functionFragment: "queueContains", data: BytesLike @@ -88,7 +89,6 @@ interface MockCoreInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "root", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sequences", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result; events: { @@ -148,7 +148,7 @@ export class MockCore extends BaseContract { count(overrides?: CallOverrides): Promise<[BigNumber]>; - enqueue( + dispatch( _destination: BigNumberish, _recipient: BytesLike, _body: BytesLike, @@ -161,6 +161,8 @@ export class MockCore extends BaseContract { localDomain(overrides?: CallOverrides): Promise<[number]>; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -172,8 +174,6 @@ export class MockCore extends BaseContract { root(overrides?: CallOverrides): Promise<[string]>; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>; - tree( overrides?: CallOverrides ): Promise<[BigNumber] & { count: BigNumber }>; @@ -183,7 +183,7 @@ export class MockCore extends BaseContract { count(overrides?: CallOverrides): Promise; - enqueue( + dispatch( _destination: BigNumberish, _recipient: BytesLike, _body: BytesLike, @@ -196,6 +196,8 @@ export class MockCore extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + queueContains(_item: BytesLike, overrides?: CallOverrides): Promise; queueEnd(overrides?: CallOverrides): Promise; @@ -204,8 +206,6 @@ export class MockCore extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - tree(overrides?: CallOverrides): Promise; callStatic: { @@ -213,7 +213,7 @@ export class MockCore extends BaseContract { count(overrides?: CallOverrides): Promise; - enqueue( + dispatch( _destination: BigNumberish, _recipient: BytesLike, _body: BytesLike, @@ -226,6 +226,8 @@ export class MockCore extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -237,22 +239,20 @@ export class MockCore extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences(arg0: BigNumberish, overrides?: CallOverrides): Promise; - tree(overrides?: CallOverrides): Promise; }; filters: { Dispatch( leafIndex?: BigNumberish | null, - destinationAndSequence?: BigNumberish | null, + destinationAndNonce?: BigNumberish | null, leaf?: BytesLike | null, message?: null ): TypedEventFilter< [BigNumber, BigNumber, string, string], { leafIndex: BigNumber; - destinationAndSequence: BigNumber; + destinationAndNonce: BigNumber; leaf: string; message: string; } @@ -273,7 +273,7 @@ export class MockCore extends BaseContract { count(overrides?: CallOverrides): Promise; - enqueue( + dispatch( _destination: BigNumberish, _recipient: BytesLike, _body: BytesLike, @@ -286,6 +286,8 @@ export class MockCore extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -297,11 +299,6 @@ export class MockCore extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - tree(overrides?: CallOverrides): Promise; }; @@ -312,7 +309,7 @@ export class MockCore extends BaseContract { count(overrides?: CallOverrides): Promise; - enqueue( + dispatch( _destination: BigNumberish, _recipient: BytesLike, _body: BytesLike, @@ -328,6 +325,11 @@ export class MockCore extends BaseContract { localDomain(overrides?: CallOverrides): Promise; + nonces( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + queueContains( _item: BytesLike, overrides?: CallOverrides @@ -339,11 +341,6 @@ export class MockCore extends BaseContract { root(overrides?: CallOverrides): Promise; - sequences( - arg0: BigNumberish, - overrides?: CallOverrides - ): Promise; - tree(overrides?: CallOverrides): Promise; }; } diff --git a/typescript/typechain/optics-xapps/Replica.d.ts b/typescript/typechain/optics-xapps/Replica.d.ts index 5d5c036e3..48dbbf77b 100644 --- a/typescript/typechain/optics-xapps/Replica.d.ts +++ b/typescript/typechain/optics-xapps/Replica.d.ts @@ -25,9 +25,9 @@ interface ReplicaInterface extends ethers.utils.Interface { "RESERVE_GAS()": FunctionFragment; "acceptableRoot(bytes32)": FunctionFragment; "canConfirm()": FunctionFragment; + "committedRoot()": FunctionFragment; "confirm()": FunctionFragment; "confirmAt(bytes32)": FunctionFragment; - "current()": FunctionFragment; "doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment; "homeDomainHash()": FunctionFragment; "initialize(uint32,address,bytes32,uint256)": FunctionFragment; @@ -63,12 +63,15 @@ interface ReplicaInterface extends ethers.utils.Interface { functionFragment: "canConfirm", values?: undefined ): string; + encodeFunctionData( + functionFragment: "committedRoot", + values?: undefined + ): string; encodeFunctionData(functionFragment: "confirm", values?: undefined): string; encodeFunctionData( functionFragment: "confirmAt", values: [BytesLike] ): string; - encodeFunctionData(functionFragment: "current", values?: undefined): string; encodeFunctionData( functionFragment: "doubleUpdate", values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike] @@ -210,9 +213,12 @@ interface ReplicaInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "canConfirm", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "committedRoot", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "confirm", data: BytesLike): Result; decodeFunctionResult(functionFragment: "confirmAt", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "current", data: BytesLike): Result; decodeFunctionResult( functionFragment: "doubleUpdate", data: BytesLike @@ -326,14 +332,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise<[boolean]>; + committedRoot(overrides?: CallOverrides): Promise<[string]>; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>; - current(overrides?: CallOverrides): Promise<[string]>; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -347,7 +353,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -480,14 +486,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -501,7 +507,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -632,12 +638,12 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm(overrides?: CallOverrides): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -651,7 +657,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: CallOverrides ): Promise; @@ -791,14 +797,14 @@ export class Replica extends BaseContract { ProcessError( messageHash?: BytesLike | null, - sequence?: BigNumberish | null, + nonce?: BigNumberish | null, recipient?: string | null, returnData?: null ): TypedEventFilter< [string, number, string, string], { messageHash: string; - sequence: number; + nonce: number; recipient: string; returnData: string; } @@ -836,14 +842,14 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; confirmAt(arg0: BytesLike, overrides?: CallOverrides): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -857,7 +863,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -990,6 +996,8 @@ export class Replica extends BaseContract { canConfirm(overrides?: CallOverrides): Promise; + committedRoot(overrides?: CallOverrides): Promise; + confirm( overrides?: Overrides & { from?: string | Promise } ): Promise; @@ -999,8 +1007,6 @@ export class Replica extends BaseContract { overrides?: CallOverrides ): Promise; - current(overrides?: CallOverrides): Promise; - doubleUpdate( _oldRoot: BytesLike, _newRoot: [BytesLike, BytesLike], @@ -1014,7 +1020,7 @@ export class Replica extends BaseContract { initialize( _remoteDomain: BigNumberish, _updater: string, - _current: BytesLike, + _committedRoot: BytesLike, _optimisticSeconds: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; diff --git a/typescript/typechain/optics-xapps/XAppConnectionManager.d.ts b/typescript/typechain/optics-xapps/XAppConnectionManager.d.ts index 5af78bfb0..d6d86efa6 100644 --- a/typescript/typechain/optics-xapps/XAppConnectionManager.d.ts +++ b/typescript/typechain/optics-xapps/XAppConnectionManager.d.ts @@ -23,7 +23,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { functions: { "domainToReplica(uint32)": FunctionFragment; "home()": FunctionFragment; - "isOwner(address)": FunctionFragment; "isReplica(address)": FunctionFragment; "localDomain()": FunctionFragment; "owner()": FunctionFragment; @@ -43,7 +42,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { values: [BigNumberish] ): string; encodeFunctionData(functionFragment: "home", values?: undefined): string; - encodeFunctionData(functionFragment: "isOwner", values: [string]): string; encodeFunctionData(functionFragment: "isReplica", values: [string]): string; encodeFunctionData( functionFragment: "localDomain", @@ -89,7 +87,6 @@ interface XAppConnectionManagerInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "home", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "isOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result; decodeFunctionResult( functionFragment: "localDomain", @@ -194,8 +191,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise<[string]>; - isOwner(_owner: string, overrides?: CallOverrides): Promise<[boolean]>; - isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>; localDomain(overrides?: CallOverrides): Promise<[number]>; @@ -257,8 +252,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -320,8 +313,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -408,8 +399,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner(_owner: string, overrides?: CallOverrides): Promise; - isReplica(_replica: string, overrides?: CallOverrides): Promise; localDomain(overrides?: CallOverrides): Promise; @@ -475,11 +464,6 @@ export class XAppConnectionManager extends BaseContract { home(overrides?: CallOverrides): Promise; - isOwner( - _owner: string, - overrides?: CallOverrides - ): Promise; - isReplica( _replica: string, overrides?: CallOverrides diff --git a/typescript/typechain/optics-xapps/factories/BridgeRouter__factory.ts b/typescript/typechain/optics-xapps/factories/BridgeRouter__factory.ts index 78751d75a..e3618e005 100644 --- a/typescript/typechain/optics-xapps/factories/BridgeRouter__factory.ts +++ b/typescript/typechain/optics-xapps/factories/BridgeRouter__factory.ts @@ -483,7 +483,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50615f8480620000216000396000f3fe60806040523480156200001157600080fd5b5060043610620001a85760003560e01c80636cdccfb811620000ed578063c3a7a0231162000099578063ce5494bb116200006f578063ce5494bb14620005b4578063d82d053114620005ea578063f2fde38b146200062c57620001a8565b8063c3a7a0231462000548578063cbcacfee1462000574578063ccf5a77c14620005aa57620001a8565b8063715018a611620000cf578063715018a614620005085780638da5cb5b1462000512578063b49c53a7146200051c57620001a8565b80636cdccfb814620004e25780636eb3d5fe14620004fe57620001a8565b806341bdc8b5116200015957806356d5d475116200012f57806356d5d4751462000382578063589b3c64146200044057806362568787146200046c57620001a8565b806341bdc8b514620002ee578063485cc9551462000324578063546d573d146200036257620001a8565b80631ecf6f9f116200018f5780631ecf6f9f146200025357806328b1aea0146200029c5780633339df9614620002e457620001a8565b806303e418c214620001ad5780631cabf08f1462000203575b600080fd5b620001e360048036036020811015620001c557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000662565b6040805163ffffffff909316835260208301919091528051918290030190f35b62000251600480360360808110156200021b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359063ffffffff604082013516906060013562000684565b005b62000273600480360360208110156200026b57600080fd5b5035620009ee565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200025160048036036060811015620002b457600080fd5b50803563ffffffff16906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1662000a16565b6200027362000d52565b62000251600480360360208110156200030657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000d6e565b62000251600480360360408110156200033c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000e62565b62000273600480360360208110156200037a57600080fd5b503562000f96565b62000251600480360360608110156200039a57600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115620003c857600080fd5b820183602082011115620003db57600080fd5b80359060200191846001830284011164010000000083111715620003fe57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062000fbe945050505050565b62000273600480360360408110156200045857600080fd5b5063ffffffff813516906020013562001282565b62000251600480360360208110156200048457600080fd5b810190602081018135640100000000811115620004a057600080fd5b820183602082011115620004b357600080fd5b80359060200191846001830284011164010000000083111715620004d657600080fd5b509092509050620012a1565b620004ec62001521565b60408051918252519081900360200190f35b620004ec62001527565b620002516200152d565b6200027362001649565b62000251600480360360408110156200053457600080fd5b5063ffffffff813516906020013562001665565b62000251600480360360408110156200056057600080fd5b5063ffffffff81351690602001356200172b565b620001e3600480360360208110156200058c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620017f3565b620002736200183e565b6200025160048036036020811015620005cc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166200185a565b62000273600480360360408110156200060257600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff1662001be7565b62000251600480360360208110156200064457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001bff565b60ca602052600090815260409020805460019091015463ffffffff9091169082565b60008311620006f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21616d6e74000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b806200076157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172656369700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006200076e8362001da8565b9050846200077c8162001e30565b15620007ac57620007a673ffffffffffffffffffffffffffffffffffffffff821633308862001e43565b62000842565b620007b78162001ee0565b73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200082857600080fd5b505af11580156200083d573d6000803e3d6000fd5b505050505b600062000850848762001ee3565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008bb57600080fd5b505afa158015620008d0573d6000803e3d6000fd5b505050506040513d6020811015620008e757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663d346863986856200091c620009158c62001f44565b8662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200097c57818101518382015260200162000962565b50505050905090810190601f168015620009aa5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b5050505050505050505050565b60cb6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000a20620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662000a4062001649565b73ffffffffffffffffffffffffffffffffffffffff161462000ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff8316916340c10f1991604480830192600092919082900301818387803b15801562000b3857600080fd5b505af115801562000b4d573d6000803e3d6000fd5b5050604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff85169350639dc29fac9250604480830192600092919082900301818387803b15801562000bc657600080fd5b505af115801562000bdb573d6000803e3d6000fd5b50505050600062000bed8484620020b8565b905062000c1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166200210a565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562000ca17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002156565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca602052604081206001019190915562000cfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662002198565b600090815260cb6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff949094169390931790925550505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b62000d78620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662000d9862001649565b73ffffffffffffffffffffffffffffffffffffffff161462000e1b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff168062000e7e575062000e7e620021db565b8062000e8d575060005460ff16155b62000ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562000f4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62000f5683620021ee565b62000f61826200234b565b801562000f9157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60cc6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000fc933620024b1565b6200103557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826200104382826200255d565b620010af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b6000620010e9620010c1858362002579565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166200259f565b905060006200111a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620025d8565b905060006200114b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200261c565b90506200117a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620026b2565b1562001192576200118c8282620026ee565b62001278565b620011bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620028d5565b15620011d1576200118c8282620028f8565b620011fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002b5e565b1562001211576200118c88888462002b81565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050505050565b60006200129a620012948484620020b8565b62002fe7565b9392505050565b6000620012ed620010c1600085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620025799050565b905060006200134a620013227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416620025d8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016620030c6565b90506000620013a76200137f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166200261c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016620030d7565b90506000620013b78383620030e8565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156200144c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21756e66696c6c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600081815260cc6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556200148d8462003189565b90506200151833620014c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166200321c565b620014f8620014f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088166200325c565b6200329e565b73ffffffffffffffffffffffffffffffffffffffff851692919062001e43565b50505050505050565b61270b81565b61271081565b62001537620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200155762001649565b73ffffffffffffffffffffffffffffffffffffffff1614620015da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6200166f620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200168f62001649565b73ffffffffffffffffffffffffffffffffffffffff16146200171257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b62001735620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200175562001649565b73ffffffffffffffffffffffffffffffffffffffff1614620017d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000620017e68383620020b8565b905062000f9181620032b0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549290910182905291565b60c95473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff16808452600190910154918301919091526200190f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2172657072000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160006200191d836200349c565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620019bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f21646966666572656e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562001a2557600080fd5b505afa15801562001a3a573d6000803e3d6000fd5b505050506040513d602081101562001a5157600080fd5b5051604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff851691639dc29fac9160448082019260009290919082900301818387803b15801562001acc57600080fd5b505af115801562001ae1573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff861693506340c10f199250604480830192600092919082900301818387803b15801562001b5a57600080fd5b505af115801562001b6f573d6000803e3d6000fd5b50505060208086015186516040805186815273ffffffffffffffffffffffffffffffffffffffff898116958201959095529387168482015251339450919263ffffffff909116917fd57de5bab8e39ab8d289365584bb1583985651b6d05554e7fb2e5776ce0cb2d39181900360600190a45050505050565b60006200129a8362001bf984620034b3565b62001282565b62001c09620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662001c2962001649565b73ffffffffffffffffffffffffffffffffffffffff161462001cac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811662001d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005dc86026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b63ffffffff81166000908152609760205260409020548062001e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b919050565b600062001e3d82620034cc565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001eda9085906200350e565b50505050565b90565b60006200129a62001f3e6000600386866040516020018084600581111562001f0757fe5b60f81b815260010183815260200182815260200193505050506040516020818303038152906040526200257990919063ffffffff16565b620030d7565b60008062001f5283620035ec565b90506200129a81600001518260200151620020b8565b606082600162001f9d815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906200366c565b5062001fa984620037f8565b6200201557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051600280825260608201835260009260208301908036833701905050905085816000815181106200204557fe5b602002602001019062ffffff1916908162ffffff19168152505084816001815181106200206e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152620020aa8162003829565b9695505050505050565b3390565b60006200129a6200210460008585604051602001808363ffffffff1660e01b8152600401828152602001925050506040516020818303038152906040526200257990919063ffffffff16565b620030c6565b60008160016200211a8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600060046200387f565b92505b5050919050565b6000816001620021668162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660046020620038a2565b600080620021a68362003a25565b6bffffffffffffffffffffffff1690506000620021c38462003a39565b6bffffffffffffffffffffffff169091209392505050565b6000620021e83062003a4d565b15905090565b600054610100900460ff16806200220a57506200220a620021db565b8062002219575060005460ff16155b62002270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff16158015620022d757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200234757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600054610100900460ff168062002367575062002367620021db565b8062002376575060005460ff16155b620023cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff161580156200243457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556200247e62003a53565b80156200234757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b1580156200252957600080fd5b505afa1580156200253e573d6000803e3d6000fd5b505050506040513d60208110156200255557600080fd5b505192915050565b63ffffffff919091166000908152609760205260409020541490565b8151600090602084016200259664ffffffffff8516828462003b82565b95945050505050565b600062001e3d620025b08362003bdf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003c2d565b6000816002620025e88162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006024600162003caa565b60008160026200262c8162001f73565b50600060246200265e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003a39565b6bffffffffffffffffffffffff1603905060006200267c8662003d3e565b60ff169050620020aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166024848462003caa565b60006003620026c18362003d71565b60ff1614801562001e3d575060035b620026db8362003da3565b6005811115620026e757fe5b1492915050565b6000620026fb8362003de1565b905060006200272c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200321c565b905060006200273c8585620030e8565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168015620027a357600082815260cc6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559150815b620027ae8462001e30565b156200280b576200280583620027e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088166200325c565b73ffffffffffffffffffffffffffffffffffffffff8716919062003e25565b620028cd565b620028168462001ee0565b73ffffffffffffffffffffffffffffffffffffffff166340c10f19846200285f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089166200325c565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015620028b357600080fd5b505af1158015620028c8573d6000803e3d6000fd5b505050505b505050505050565b60006004620028e48362003d71565b60ff1614801562001e3d57506004620026d0565b6000620029058362003189565b9050620029128162001e30565b156200297f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f7465206f726967696e000000000000000000000000000000000000604482015290519081900360640190fd5b6200298a8162001ee0565b73ffffffffffffffffffffffffffffffffffffffff1663654935f4620029dc620029d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662003eb4565b62003ef6565b62002a0d620029d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003f6d565b62002a3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003faf565b6040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562002a9557818101518382015260200162002a7b565b50505050905090810190601f16801562002ac35780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562002af857818101518382015260200162002ade565b50505050905090810190601f16801562002b265780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562002b4957600080fd5b505af115801562001518573d6000803e3d6000fd5b6000600562002b6d8362003d71565b60ff1614801562001e3d57506005620026d0565b600062002bb07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662003ff1565b905062002bbd81620034cc565b62002c2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f216c6f63616c206f726967696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000819050600062002e7562002d9a8373ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002c8157600080fd5b505af115801562002c96573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101562002cde57600080fd5b810190808051604051939291908464010000000082111562002cff57600080fd5b90830190602082018581111562002d1557600080fd5b825164010000000081118282018810171562002d3057600080fd5b82525081516020918201929091019080838360005b8381101562002d5f57818101518382015260200162002d45565b50505050905090810190601f16801562002d8d5780820380516001836020036101000a031916815260200191505b5060405250505062004031565b62002dfa8473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562002de557600080fd5b505afa15801562002c96573d6000803e3d6000fd5b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801562002e4157600080fd5b505afa15801562002e56573d6000803e3d6000fd5b505050506040513d602081101562002e6d57600080fd5b50516200407b565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002ee057600080fd5b505afa15801562002ef5573d6000803e3d6000fd5b505050506040513d602081101562002f0c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663d3468639878762002f37888662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002f9757818101518382015260200162002f7d565b50505050905090810190601f16801562002fc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620028b357600080fd5b600062002ff3620040ea565b63ffffffff16620030267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200210a565b63ffffffff1614156200306857620030607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662003ff1565b905062001e2b565b60cb6000620030997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002198565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600062001e3d620025b083620040fb565b600062001e3d620025b0836200414d565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106200311c57fe5b602002602001019062ffffff1916908162ffffff19168152505082816001815181106200314557fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015262003181816200419f565b949350505050565b600080620031978362002fe7565b905073ffffffffffffffffffffffffffffffffffffffff811662001e3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21746f6b656e0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008160036200322c8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d620041bb565b60008160036200326c8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516602160206200387f565b600061271061270b83025b0492915050565b6000620032df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200210a565b63ffffffff8116600090815260976020526040902054909150806200330657505062003499565b600062003312620041cb565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200337d57600080fd5b505afa15801562003392573d6000803e3d6000fd5b505050506040513d6020811015620033a957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663d34686398484620033d4888662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620034345781810151838201526020016200341a565b50505050905090810190601f168015620034625780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200348457600080fd5b505af115801562001278573d6000803e3d6000fd5b50565b600062001e3d620034ad836200421c565b62004232565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca602052604081205463ffffffff1615620035075750600062001e2b565b503b151590565b600062003572826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620042649092919063ffffffff16565b80519091501562000f91578080602001905160208110156200359357600080fd5b505162000f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062005e9d602a913960400191505060405180910390fd5b620035f662005817565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549183019190915262001e2b576200364f620040ea565b63ffffffff1681526200366282620034b3565b6020820152919050565b60006200367a838362004275565b620037f15760006200369d620036908562004299565b64ffffffffff166200429f565b9150506000620036b48464ffffffffff166200429f565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b83811015620037b55781810151838201526020016200379b565b50505050905090810190601f168015620037e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b60006200380582620028d5565b80620038175750620038178262002b5e565b8062001e3d575062001e3d82620026b2565b60405160609060006200384084602084016200437d565b905060006200384f8262003a39565b6bffffffffffffffffffffffff16905060006200386c83620043ff565b9184525082016020016040525092915050565b60008160200360080260ff1662003898858585620038a2565b901c949350505050565b600060ff8216620038b6575060006200129a565b620038c18462003a39565b6bffffffffffffffffffffffff16620038de8460ff851662004415565b1115620039895762003926620038f48562003a25565b6bffffffffffffffffffffffff166200390d8662003a39565b6bffffffffffffffffffffffff16858560ff1662004488565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315620037b55781810151838201526020016200379b565b60208260ff161115620039e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062005e63603a913960400191505060405180910390fd5b600882026000620039f98662003a25565b6bffffffffffffffffffffffff169050600062003a1683620045ed565b91909501511695945050505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168062003a6f575062003a6f620021db565b8062003a7e575060005460ff16155b62003ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b3c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62003b4662004636565b62003b5062004750565b80156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008062003b91848462004415565b905060405181111562003ba2575060005b8062003bd2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506200129a565b62002596858585620048ea565b600062003bec82620048fd565b1562003c23576200306060025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906200495d565b62001e3d62004983565b600062003c3a82620049a7565b62003ca657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60008062003cb88662003a25565b6bffffffffffffffffffffffff16905062003cd386620049ea565b62003ceb8562003ce4848962004415565b9062004415565b111562003d1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505062003181565b62003d28818662004415565b9050620020aa8364ffffffffff16828662003b82565b600062001e3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602460016200387f565b600062001e3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016200387f565b600062003dd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004299565b60ff16600581111562001e3d57fe5b60008062003def8362002fe7565b905073ffffffffffffffffffffffffffffffffffffffff811662001e3d5762003e188362004a18565b905062001e3d83620032b0565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905262000f919084906200350e565b600081600462003ec48162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660016020620038a2565b606060005b60208160ff1610801562003f435750828160ff166020811062003f1a57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1562003f525760010162003efb565b60405191506040820160405280825282602083015250919050565b600081600462003f7d8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020620038a2565b600081600462003fbf8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516604160016200387f565b6000816001620040018162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166010620041bb565b600062001e3d60008351620040516000866200257990919063ffffffff16565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000169190620038a2565b600062003181620040e46000600487878760405160200180856005811115620040a057fe5b60f81b81526001018481526020018381526020018260ff1660f81b81526001019450505050506040516020818303038152906040526200257990919063ffffffff16565b62004e25565b6000620040f662004e36565b905090565b600060246200412c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600162003bf9565b600060416200417e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600362003bf9565b6040516000906200129a620041b584836200437d565b62002198565b60006200129a838360146200387f565b6000620040f6620042166000600560405160200180826005811115620041ed57fe5b60f81b81526001019150506040516020818303038152906040526200257990919063ffffffff16565b62004ed5565b600062001e3d82600001518360200151620020b8565b600060cb81620030997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002198565b606062003181848460008562004ee6565b60008164ffffffffff166200428a8462004299565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156200430c5760ff600882021684901c620042c781620050ab565b61ffff16841793508160ff16601014620042e357601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01620042a5565b50600f5b60ff8160ff161015620043775760ff600882021684901c6200433281620050ab565b61ffff16831792508160ff166000146200434e57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004310565b50915091565b600060405182811115620043915760206060fd5b506000805b8451811015620043f0576000858281518110620043af57fe5b60200260200101519050620043c781848701620050df565b50620043d38162003a39565b6bffffffffffffffffffffffff1692909201915060010162004396565b506200318160008483620048ea565b60006200440c826200521c565b60200292915050565b8181018281101562001e3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b6060600062004497866200429f565b9150506000620044a7866200429f565b9150506000620044b7866200429f565b9150506000620044c7866200429f565b91505083838383604051602001808062005f1a603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602162005e1482397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600054610100900460ff168062004652575062004652620021db565b8062004661575060005460ff16155b620046b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091166101001716600117905580156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806200476c57506200476c620021db565b806200477b575060005460ff16155b620047d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff161580156200483957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600062004845620020b4565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b606092831b9190911790911b1760181b90565b6000806200492d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16905060658114806200494d5750606681145b806200129a575060251492915050565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000620049b48262004299565b64ffffffffff1664ffffffffff1415620049d15750600062001e2b565b6000620049de83620049ea565b60405110199392505050565b6000620049f78262003a39565b62004a028362003a25565b016bffffffffffffffffffffffff169050919050565b60c95460405160009173ffffffffffffffffffffffffffffffffffffffff169062004a43906200582e565b73ffffffffffffffffffffffffffffffffffffffff909116815260406020820181905260008183018190529051918290036060019190f08015801562004a8d573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004ad957600080fd5b505af115801562004aee573d6000803e3d6000fd5b5050505060608062004b00846200524e565b80925081935050508273ffffffffffffffffffffffffffffffffffffffff1663654935f4838360126040518463ffffffff1660e01b8152600401808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562004b8057818101518382015260200162004b66565b50505050905090810190601f16801562004bae5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562004be357818101518382015260200162004bc9565b50505050905090810190601f16801562004c115780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562004c3457600080fd5b505af115801562004c49573d6000803e3d6000fd5b5050505062004c5e8462ffffff19166200210a565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562004ce37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002156565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040812060010191909155839060cb9062004d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000881662002198565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055831662004dbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662002156565b62004dec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166200210a565b63ffffffff167f84d5e3618bf276f3d29a931646fdd996b398a3efa3cf6bceefc1fe7f0304059f60405160405180910390a45050919050565b600062001e3d620025b08362005376565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801562004ea257600080fd5b505afa15801562004eb7573d6000803e3d6000fd5b505050506040513d602081101562004ece57600080fd5b5051905090565b600062001e3d620025b083620053c8565b60608247101562004f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005dee6026913960400191505060405180910390fd5b62004f4e8562003a4d565b62004fba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106200502557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910162004fe6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811462005089576040519150601f19603f3d011682016040523d82523d6000602084013e6200508e565b606091505b5091509150620050a08282866200541a565b979650505050505050565b6000620050bf60048360ff16901c6200549f565b60ff161760081b62ffff0016620050d6826200549f565b60ff1617919050565b6000620050ec836200562b565b62005143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018062005ec76028913960400191505060405180910390fd5b6200514e83620049a7565b620051a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062005eef602b913960400191505060405180910390fd5b6000620051b28462003a39565b6bffffffffffffffffffffffff1690506000620051cf8562003a25565b6bffffffffffffffffffffffff1690506000604051905084811115620051f55760206060fd5b8285848460045afa50620020aa6200520d8762004299565b64ffffffffff168685620048ea565b60006020620052466020620052318562003a39565b6bffffffffffffffffffffffff169062004415565b81620032a957fe5b6060806000806200528b620052857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662002156565b6200563f565b91509150620052aa620052a48662ffffff19166200210a565b62005717565b604080517f6f70746963732e0000000000000000000000000000000000000000000000000060208083019190915260b09390931b7fffffffffffffffffffff000000000000000000000000000000000000000000001660278201527f2e307800000000000000000000000000000000000000000000000000000000006031820152603481018590526054808201859052825180830390910181526074820184815260b4830190935296509091906094018180368337019050509250602084015160208401525050915091565b60006042620053a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600462003bf9565b60006001620053f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600562003bf9565b606083156200542b5750816200129a565b8251156200543c5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315620037b55781810151838201526020016200379b565b600060f08083179060ff82161415620054bd57603091505062001e2b565b8060ff1660f11415620054d557603191505062001e2b565b8060ff1660f21415620054ed57603291505062001e2b565b8060ff1660f314156200550557603391505062001e2b565b8060ff1660f414156200551d57603491505062001e2b565b8060ff1660f514156200553557603591505062001e2b565b8060ff1660f614156200554d57603691505062001e2b565b8060ff1660f714156200556557603791505062001e2b565b8060ff1660f814156200557d57603891505062001e2b565b8060ff1660f914156200559557603991505062001e2b565b8060ff1660fa1415620055ad57606191505062001e2b565b8060ff1660fb1415620055c557606291505062001e2b565b8060ff1660fc1415620055dd57606391505062001e2b565b8060ff1660fd1415620055f557606491505062001e2b565b8060ff1660fe14156200560d57606591505062001e2b565b8060ff1660ff14156200562557606691505062001e2b565b50919050565b6000620056388262005772565b1592915050565b600080601f5b600f8160ff161115620056ac5760ff600882021684901c62005667816200579a565b61ffff16841793508160ff166010146200568357601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005645565b50600f5b60ff8160ff161015620043775760ff600882021684901c620056d2816200579a565b61ffff16831792508160ff16600014620056ee57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01620056b0565b60006030815b600a8160ff1610156200214f5760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff16816200576657fe5b0493506001016200571d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000620057ae60048360ff16901c620057c0565b60ff161760081b62ffff0016620050d6825b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106200580857fe5b016020015160f81c9392505050565b604080518082019091526000808252602082015290565b61058b806200583d8339019056fe60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220acaa13070c5929df67757f0af9d23c2ae2dfb97f784ab2d6361279077a730bf864736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220509c9e28f9d71ca93ed5fe86f1f7f0684f8147220aaef003458cd77159fc3bda64736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50615f8480620000216000396000f3fe60806040523480156200001157600080fd5b5060043610620001a85760003560e01c80636cdccfb811620000ed578063c3a7a0231162000099578063ce5494bb116200006f578063ce5494bb14620005b4578063d82d053114620005ea578063f2fde38b146200062c57620001a8565b8063c3a7a0231462000548578063cbcacfee1462000574578063ccf5a77c14620005aa57620001a8565b8063715018a611620000cf578063715018a614620005085780638da5cb5b1462000512578063b49c53a7146200051c57620001a8565b80636cdccfb814620004e25780636eb3d5fe14620004fe57620001a8565b806341bdc8b5116200015957806356d5d475116200012f57806356d5d4751462000382578063589b3c64146200044057806362568787146200046c57620001a8565b806341bdc8b514620002ee578063485cc9551462000324578063546d573d146200036257620001a8565b80631ecf6f9f116200018f5780631ecf6f9f146200025357806328b1aea0146200029c5780633339df9614620002e457620001a8565b806303e418c214620001ad5780631cabf08f1462000203575b600080fd5b620001e360048036036020811015620001c557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000662565b6040805163ffffffff909316835260208301919091528051918290030190f35b62000251600480360360808110156200021b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359063ffffffff604082013516906060013562000684565b005b62000273600480360360208110156200026b57600080fd5b5035620009ee565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200025160048036036060811015620002b457600080fd5b50803563ffffffff16906020810135906040013573ffffffffffffffffffffffffffffffffffffffff1662000a16565b6200027362000d52565b62000251600480360360208110156200030657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000d6e565b62000251600480360360408110156200033c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000e62565b62000273600480360360208110156200037a57600080fd5b503562000f96565b62000251600480360360608110156200039a57600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115620003c857600080fd5b820183602082011115620003db57600080fd5b80359060200191846001830284011164010000000083111715620003fe57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955062000fbe945050505050565b62000273600480360360408110156200045857600080fd5b5063ffffffff813516906020013562001282565b62000251600480360360208110156200048457600080fd5b810190602081018135640100000000811115620004a057600080fd5b820183602082011115620004b357600080fd5b80359060200191846001830284011164010000000083111715620004d657600080fd5b509092509050620012a1565b620004ec62001521565b60408051918252519081900360200190f35b620004ec62001527565b620002516200152d565b6200027362001649565b62000251600480360360408110156200053457600080fd5b5063ffffffff813516906020013562001665565b62000251600480360360408110156200056057600080fd5b5063ffffffff81351690602001356200172b565b620001e3600480360360208110156200058c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16620017f3565b620002736200183e565b6200025160048036036020811015620005cc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166200185a565b62000273600480360360408110156200060257600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff1662001be7565b62000251600480360360208110156200064457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001bff565b60ca602052600090815260409020805460019091015463ffffffff9091169082565b60008311620006f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21616d6e74000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b806200076157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172656369700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006200076e8362001da8565b9050846200077c8162001e30565b15620007ac57620007a673ffffffffffffffffffffffffffffffffffffffff821633308862001e43565b62000842565b620007b78162001ee0565b73ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156200082857600080fd5b505af11580156200083d573d6000803e3d6000fd5b505050505b600062000850848762001ee3565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008bb57600080fd5b505afa158015620008d0573d6000803e3d6000fd5b505050506040513d6020811015620008e757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de0186856200091c620009158c62001f44565b8662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200097c57818101518382015260200162000962565b50505050905090810190601f168015620009aa5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620009cc57600080fd5b505af1158015620009e1573d6000803e3d6000fd5b5050505050505050505050565b60cb6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000a20620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662000a4062001649565b73ffffffffffffffffffffffffffffffffffffffff161462000ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff8316916340c10f1991604480830192600092919082900301818387803b15801562000b3857600080fd5b505af115801562000b4d573d6000803e3d6000fd5b5050604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815230600482015260016024820152905173ffffffffffffffffffffffffffffffffffffffff85169350639dc29fac9250604480830192600092919082900301818387803b15801562000bc657600080fd5b505af115801562000bdb573d6000803e3d6000fd5b50505050600062000bed8484620020b8565b905062000c1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000082166200210a565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562000ca17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002156565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260ca602052604081206001019190915562000cfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662002198565b600090815260cb6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff949094169390931790925550505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b62000d78620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662000d9862001649565b73ffffffffffffffffffffffffffffffffffffffff161462000e1b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff168062000e7e575062000e7e620021db565b8062000e8d575060005460ff16155b62000ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562000f4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62000f5683620021ee565b62000f61826200234b565b801562000f9157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60cc6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b62000fc933620024b1565b6200103557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826200104382826200255d565b620010af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b6000620010e9620010c1858362002579565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000166200259f565b905060006200111a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316620025d8565b905060006200114b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200261c565b90506200117a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620026b2565b1562001192576200118c8282620026ee565b62001278565b620011bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216620028d5565b15620011d1576200118c8282620028f8565b620011fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000821662002b5e565b1562001211576200118c88888462002b81565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050505050565b60006200129a620012948484620020b8565b62002fe7565b9392505050565b6000620012ed620010c1600085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620025799050565b905060006200134a620013227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416620025d8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016620030c6565b90506000620013a76200137f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166200261c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016620030d7565b90506000620013b78383620030e8565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156200144c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21756e66696c6c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600081815260cc6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556200148d8462003189565b90506200151833620014c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166200321c565b620014f8620014f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088166200325c565b6200329e565b73ffffffffffffffffffffffffffffffffffffffff851692919062001e43565b50505050505050565b61270b81565b61271081565b62001537620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200155762001649565b73ffffffffffffffffffffffffffffffffffffffff1614620015da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6200166f620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200168f62001649565b73ffffffffffffffffffffffffffffffffffffffff16146200171257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b62001735620020b4565b73ffffffffffffffffffffffffffffffffffffffff166200175562001649565b73ffffffffffffffffffffffffffffffffffffffff1614620017d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000620017e68383620020b8565b905062000f9181620032b0565b73ffffffffffffffffffffffffffffffffffffffff16600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549290910182905291565b60c95473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff16808452600190910154918301919091526200190f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2172657072000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160006200191d836200349c565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620019bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f21646966666572656e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801562001a2557600080fd5b505afa15801562001a3a573d6000803e3d6000fd5b505050506040513d602081101562001a5157600080fd5b5051604080517f9dc29fac00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff851691639dc29fac9160448082019260009290919082900301818387803b15801562001acc57600080fd5b505af115801562001ae1573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff861693506340c10f199250604480830192600092919082900301818387803b15801562001b5a57600080fd5b505af115801562001b6f573d6000803e3d6000fd5b50505060208086015186516040805186815273ffffffffffffffffffffffffffffffffffffffff898116958201959095529387168482015251339450919263ffffffff909116917fd57de5bab8e39ab8d289365584bb1583985651b6d05554e7fb2e5776ce0cb2d39181900360600190a45050505050565b60006200129a8362001bf984620034b3565b62001282565b62001c09620020b4565b73ffffffffffffffffffffffffffffffffffffffff1662001c2962001649565b73ffffffffffffffffffffffffffffffffffffffff161462001cac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811662001d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005dc86026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b63ffffffff81166000908152609760205260409020548062001e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b919050565b600062001e3d82620034cc565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001eda9085906200350e565b50505050565b90565b60006200129a62001f3e6000600386866040516020018084600581111562001f0757fe5b60f81b815260010183815260200182815260200193505050506040516020818303038152906040526200257990919063ffffffff16565b620030d7565b60008062001f5283620035ec565b90506200129a81600001518260200151620020b8565b606082600162001f9d815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906200366c565b5062001fa984620037f8565b6200201557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616374696f6e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051600280825260608201835260009260208301908036833701905050905085816000815181106200204557fe5b602002602001019062ffffff1916908162ffffff19168152505084816001815181106200206e57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090921660209283029190910190910152620020aa8162003829565b9695505050505050565b3390565b60006200129a6200210460008585604051602001808363ffffffff1660e01b8152600401828152602001925050506040516020818303038152906040526200257990919063ffffffff16565b620030c6565b60008160016200211a8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600060046200387f565b92505b5050919050565b6000816001620021668162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660046020620038a2565b600080620021a68362003a25565b6bffffffffffffffffffffffff1690506000620021c38462003a39565b6bffffffffffffffffffffffff169091209392505050565b6000620021e83062003a4d565b15905090565b600054610100900460ff16806200220a57506200220a620021db565b8062002219575060005460ff16155b62002270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff16158015620022d757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200234757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600054610100900460ff168062002367575062002367620021db565b8062002376575060005460ff16155b620023cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff161580156200243457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556200247e62003a53565b80156200234757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b1580156200252957600080fd5b505afa1580156200253e573d6000803e3d6000fd5b505050506040513d60208110156200255557600080fd5b505192915050565b63ffffffff919091166000908152609760205260409020541490565b8151600090602084016200259664ffffffffff8516828462003b82565b95945050505050565b600062001e3d620025b08362003bdf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000001662003c2d565b6000816002620025e88162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660006024600162003caa565b60008160026200262c8162001f73565b50600060246200265e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003a39565b6bffffffffffffffffffffffff1603905060006200267c8662003d3e565b60ff169050620020aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166024848462003caa565b60006003620026c18362003d71565b60ff1614801562001e3d575060035b620026db8362003da3565b6005811115620026e757fe5b1492915050565b6000620026fb8362003de1565b905060006200272c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200321c565b905060006200273c8585620030e8565b600081815260cc602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168015620027a357600082815260cc6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559150815b620027ae8462001e30565b156200280b576200280583620027e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000088166200325c565b73ffffffffffffffffffffffffffffffffffffffff8716919062003e25565b620028cd565b620028168462001ee0565b73ffffffffffffffffffffffffffffffffffffffff166340c10f19846200285f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000089166200325c565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015620028b357600080fd5b505af1158015620028c8573d6000803e3d6000fd5b505050505b505050505050565b60006004620028e48362003d71565b60ff1614801562001e3d57506004620026d0565b6000620029058362003189565b9050620029128162001e30565b156200297f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f7465206f726967696e000000000000000000000000000000000000604482015290519081900360640190fd5b6200298a8162001ee0565b73ffffffffffffffffffffffffffffffffffffffff1663654935f4620029dc620029d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662003eb4565b62003ef6565b62002a0d620029d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003f6d565b62002a3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662003faf565b6040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b8381101562002a9557818101518382015260200162002a7b565b50505050905090810190601f16801562002ac35780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562002af857818101518382015260200162002ade565b50505050905090810190601f16801562002b265780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562002b4957600080fd5b505af115801562001518573d6000803e3d6000fd5b6000600562002b6d8362003d71565b60ff1614801562001e3d57506005620026d0565b600062002bb07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662003ff1565b905062002bbd81620034cc565b62002c2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f216c6f63616c206f726967696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000819050600062002e7562002d9a8373ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002c8157600080fd5b505af115801562002c96573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101562002cde57600080fd5b810190808051604051939291908464010000000082111562002cff57600080fd5b90830190602082018581111562002d1557600080fd5b825164010000000081118282018810171562002d3057600080fd5b82525081516020918201929091019080838360005b8381101562002d5f57818101518382015260200162002d45565b50505050905090810190601f16801562002d8d5780820380516001836020036101000a031916815260200191505b5060405250505062004031565b62002dfa8473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801562002de557600080fd5b505afa15801562002c96573d6000803e3d6000fd5b8473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801562002e4157600080fd5b505afa15801562002e56573d6000803e3d6000fd5b505050506040513d602081101562002e6d57600080fd5b50516200407b565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002ee057600080fd5b505afa15801562002ef5573d6000803e3d6000fd5b505050506040513d602081101562002f0c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de01878762002f37888662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002f9757818101518382015260200162002f7d565b50505050905090810190601f16801562002fc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015620028b357600080fd5b600062002ff3620040ea565b63ffffffff16620030267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000084166200210a565b63ffffffff1614156200306857620030607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662003ff1565b905062001e2b565b60cb6000620030997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002198565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600062001e3d620025b083620040fb565b600062001e3d620025b0836200414d565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106200311c57fe5b602002602001019062ffffff1916908162ffffff19168152505082816001815181106200314557fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092166020928302919091019091015262003181816200419f565b949350505050565b600080620031978362002fe7565b905073ffffffffffffffffffffffffffffffffffffffff811662001e3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21746f6b656e0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008160036200322c8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516600d620041bb565b60008160036200326c8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516602160206200387f565b600061271061270b83025b0492915050565b6000620032df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083166200210a565b63ffffffff8116600090815260976020526040902054909150806200330657505062003499565b600062003312620041cb565b9050606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fa92f9d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200337d57600080fd5b505afa15801562003392573d6000803e3d6000fd5b505050506040513d6020811015620033a957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1663fa31de018484620033d4888662001f68565b6040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620034345781810151838201526020016200341a565b50505050905090810190601f168015620034625780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156200348457600080fd5b505af115801562001278573d6000803e3d6000fd5b50565b600062001e3d620034ad836200421c565b62004232565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260ca602052604081205463ffffffff1615620035075750600062001e2b565b503b151590565b600062003572826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16620042649092919063ffffffff16565b80519091501562000f91578080602001905160208110156200359357600080fd5b505162000f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062005e9d602a913960400191505060405180910390fd5b620035f662005817565b5073ffffffffffffffffffffffffffffffffffffffff8116600090815260ca60209081526040918290208251808401909352805463ffffffff168084526001909101549183019190915262001e2b576200364f620040ea565b63ffffffff1681526200366282620034b3565b6020820152919050565b60006200367a838362004275565b620037f15760006200369d620036908562004299565b64ffffffffff166200429f565b9150506000620036b48464ffffffffff166200429f565b604080517f5479706520617373657274696f6e206661696c65642e20476f742030780000006020808301919091527fffffffffffffffffffff0000000000000000000000000000000000000000000060b088811b8216603d8501527f2e20457870656374656420307800000000000000000000000000000000000000604785015285901b1660548301528251603e818403018152605e8301938490527f08c379a000000000000000000000000000000000000000000000000000000000909352606282018181528351608284015283519496509294508493839260a2019185019080838360005b83811015620037b55781810151838201526020016200379b565b50505050905090810190601f168015620037e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5090919050565b60006200380582620028d5565b80620038175750620038178262002b5e565b8062001e3d575062001e3d82620026b2565b60405160609060006200384084602084016200437d565b905060006200384f8262003a39565b6bffffffffffffffffffffffff16905060006200386c83620043ff565b9184525082016020016040525092915050565b60008160200360080260ff1662003898858585620038a2565b901c949350505050565b600060ff8216620038b6575060006200129a565b620038c18462003a39565b6bffffffffffffffffffffffff16620038de8460ff851662004415565b1115620039895762003926620038f48562003a25565b6bffffffffffffffffffffffff166200390d8662003a39565b6bffffffffffffffffffffffff16858560ff1662004488565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315620037b55781810151838201526020016200379b565b60208260ff161115620039e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062005e63603a913960400191505060405180910390fd5b600882026000620039f98662003a25565b6bffffffffffffffffffffffff169050600062003a1683620045ed565b91909501511695945050505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b3b151590565b600054610100900460ff168062003a6f575062003a6f620021db565b8062003a7e575060005460ff16155b62003ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b3c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b62003b4662004636565b62003b5062004750565b80156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b60008062003b91848462004415565b905060405181111562003ba2575060005b8062003bd2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009150506200129a565b62002596858585620048ea565b600062003bec82620048fd565b1562003c23576200306060025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416906200495d565b62001e3d62004983565b600062003c3a82620049a7565b62003ca657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696469747920617373657274696f6e206661696c656400000000000000604482015290519081900360640190fd5b5090565b60008062003cb88662003a25565b6bffffffffffffffffffffffff16905062003cd386620049ea565b62003ceb8562003ce4848962004415565b9062004415565b111562003d1c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505062003181565b62003d28818662004415565b9050620020aa8364ffffffffff16828662003b82565b600062001e3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602460016200387f565b600062001e3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260016200387f565b600062003dd27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831662004299565b60ff16600581111562001e3d57fe5b60008062003def8362002fe7565b905073ffffffffffffffffffffffffffffffffffffffff811662001e3d5762003e188362004a18565b905062001e3d83620032b0565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905262000f919084906200350e565b600081600462003ec48162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660016020620038a2565b606060005b60208160ff1610801562003f435750828160ff166020811062003f1a57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1562003f525760010162003efb565b60405191506040820160405280825282602083015250919050565b600081600462003f7d8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851660216020620038a2565b600081600462003fbf8162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516604160016200387f565b6000816001620040018162001f73565b506200214c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000085166010620041bb565b600062001e3d60008351620040516000866200257990919063ffffffff16565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000169190620038a2565b600062003181620040e46000600487878760405160200180856005811115620040a057fe5b60f81b81526001018481526020018381526020018260ff1660f81b81526001019450505050506040516020818303038152906040526200257990919063ffffffff16565b62004e25565b6000620040f662004e36565b905090565b600060246200412c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600162003bf9565b600060416200417e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600362003bf9565b6040516000906200129a620041b584836200437d565b62002198565b60006200129a838360146200387f565b6000620040f6620042166000600560405160200180826005811115620041ed57fe5b60f81b81526001019150506040516020818303038152906040526200257990919063ffffffff16565b62004ed5565b600062001e3d82600001518360200151620020b8565b600060cb81620030997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002198565b606062003181848460008562004ee6565b60008164ffffffffff166200428a8462004299565b64ffffffffff16149392505050565b60d81c90565b600080601f5b600f8160ff1611156200430c5760ff600882021684901c620042c781620050ab565b61ffff16841793508160ff16601014620042e357601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01620042a5565b50600f5b60ff8160ff161015620043775760ff600882021684901c6200433281620050ab565b61ffff16831792508160ff166000146200434e57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162004310565b50915091565b600060405182811115620043915760206060fd5b506000805b8451811015620043f0576000858281518110620043af57fe5b60200260200101519050620043c781848701620050df565b50620043d38162003a39565b6bffffffffffffffffffffffff1692909201915060010162004396565b506200318160008483620048ea565b60006200440c826200521c565b60200292915050565b8181018281101562001e3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b6060600062004497866200429f565b9150506000620044a7866200429f565b9150506000620044b7866200429f565b9150506000620044c7866200429f565b91505083838383604051602001808062005f1a603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602162005e1482397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600054610100900460ff168062004652575062004652620021db565b8062004661575060005460ff16155b620046b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff1615801562003b5057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091166101001716600117905580156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff16806200476c57506200476c620021db565b806200477b575060005460ff16155b620047d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062005e35602e913960400191505060405180910390fd5b600054610100900460ff161580156200483957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b600062004845620020b4565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080156200349957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b606092831b9190911790911b1760181b90565b6000806200492d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16905060658114806200494d5750606681145b806200129a575060251492915050565b60d81b7affffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000090565b6000620049b48262004299565b64ffffffffff1664ffffffffff1415620049d15750600062001e2b565b6000620049de83620049ea565b60405110199392505050565b6000620049f78262003a39565b62004a028362003a25565b016bffffffffffffffffffffffff169050919050565b60c95460405160009173ffffffffffffffffffffffffffffffffffffffff169062004a43906200582e565b73ffffffffffffffffffffffffffffffffffffffff909116815260406020820181905260008183018190529051918290036060019190f08015801562004a8d573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004ad957600080fd5b505af115801562004aee573d6000803e3d6000fd5b5050505060608062004b00846200524e565b80925081935050508273ffffffffffffffffffffffffffffffffffffffff1663654935f4838360126040518463ffffffff1660e01b8152600401808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101562004b8057818101518382015260200162004b66565b50505050905090810190601f16801562004bae5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101562004be357818101518382015260200162004bc9565b50505050905090810190601f16801562004c115780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801562004c3457600080fd5b505af115801562004c49573d6000803e3d6000fd5b5050505062004c5e8462ffffff19166200210a565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905562004ce37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000851662002156565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260ca6020526040812060010191909155839060cb9062004d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000881662002198565b8152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055831662004dbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861662002156565b62004dec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000087166200210a565b63ffffffff167f84d5e3618bf276f3d29a931646fdd996b398a3efa3cf6bceefc1fe7f0304059f60405160405180910390a45050919050565b600062001e3d620025b08362005376565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801562004ea257600080fd5b505afa15801562004eb7573d6000803e3d6000fd5b505050506040513d602081101562004ece57600080fd5b5051905090565b600062001e3d620025b083620053c8565b60608247101562004f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062005dee6026913960400191505060405180910390fd5b62004f4e8562003a4d565b62004fba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106200502557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910162004fe6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811462005089576040519150601f19603f3d011682016040523d82523d6000602084013e6200508e565b606091505b5091509150620050a08282866200541a565b979650505050505050565b6000620050bf60048360ff16901c6200549f565b60ff161760081b62ffff0016620050d6826200549f565b60ff1617919050565b6000620050ec836200562b565b62005143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018062005ec76028913960400191505060405180910390fd5b6200514e83620049a7565b620051a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018062005eef602b913960400191505060405180910390fd5b6000620051b28462003a39565b6bffffffffffffffffffffffff1690506000620051cf8562003a25565b6bffffffffffffffffffffffff1690506000604051905084811115620051f55760206060fd5b8285848460045afa50620020aa6200520d8762004299565b64ffffffffff168685620048ea565b60006020620052466020620052318562003a39565b6bffffffffffffffffffffffff169062004415565b81620032a957fe5b6060806000806200528b620052857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000871662002156565b6200563f565b91509150620052aa620052a48662ffffff19166200210a565b62005717565b604080517f6f70746963732e0000000000000000000000000000000000000000000000000060208083019190915260b09390931b7fffffffffffffffffffff000000000000000000000000000000000000000000001660278201527f2e307800000000000000000000000000000000000000000000000000000000006031820152603481018590526054808201859052825180830390910181526074820184815260b4830190935296509091906094018180368337019050509250602084015160208401525050915091565b60006042620053a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600462003bf9565b60006001620053f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000841662003a39565b6bffffffffffffffffffffffff16141562003c235762003060600562003bf9565b606083156200542b5750816200129a565b8251156200543c5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315620037b55781810151838201526020016200379b565b600060f08083179060ff82161415620054bd57603091505062001e2b565b8060ff1660f11415620054d557603191505062001e2b565b8060ff1660f21415620054ed57603291505062001e2b565b8060ff1660f314156200550557603391505062001e2b565b8060ff1660f414156200551d57603491505062001e2b565b8060ff1660f514156200553557603591505062001e2b565b8060ff1660f614156200554d57603691505062001e2b565b8060ff1660f714156200556557603791505062001e2b565b8060ff1660f814156200557d57603891505062001e2b565b8060ff1660f914156200559557603991505062001e2b565b8060ff1660fa1415620055ad57606191505062001e2b565b8060ff1660fb1415620055c557606291505062001e2b565b8060ff1660fc1415620055dd57606391505062001e2b565b8060ff1660fd1415620055f557606491505062001e2b565b8060ff1660fe14156200560d57606591505062001e2b565b8060ff1660ff14156200562557606691505062001e2b565b50919050565b6000620056388262005772565b1592915050565b600080601f5b600f8160ff161115620056ac5760ff600882021684901c62005667816200579a565b61ffff16841793508160ff166010146200568357601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0162005645565b50600f5b60ff8160ff161015620043775760ff600882021684901c620056d2816200579a565b61ffff16831792508160ff16600014620056ee57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01620056b0565b60006030815b600a8160ff1610156200214f5760ff600882021682600a63ffffffff87160663ffffffff160169ffffffffffffffffffff16901b83179250600a8463ffffffff16816200576657fe5b0493506001016200571d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000620057ae60048360ff16901c620057c0565b60ff161760081b62ffff0016620050d6825b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106200580857fe5b016020015160f81c9392505050565b604080518082019091526000808252602082015290565b61058b806200583d8339019056fe60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea2646970667358221220acaa13070c5929df67757f0af9d23c2ae2dfb97f784ab2d6361279077a730bf864736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656454797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e2033322062797465735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656454797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212202e5ceb847f42d38c243e0ffd81859b151f86dd1e233d304c92198947e80f6c8064736f6c63430007060033"; export class BridgeRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/BridgeToken__factory.ts b/typescript/typechain/optics-xapps/factories/BridgeToken__factory.ts index 24e93ac3d..d6d3940f7 100644 --- a/typescript/typechain/optics-xapps/factories/BridgeToken__factory.ts +++ b/typescript/typechain/optics-xapps/factories/BridgeToken__factory.ts @@ -486,7 +486,7 @@ const _abi = [ ]; const _bytecode = - "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c61214c6100a560003980610f30525080611356525080610c705280610ecc525061214c6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638129fc1c116100d8578063a457c2d71161008c578063dd62ed3e11610066578063dd62ed3e146105c5578063f2fde38b14610600578063f698da251461063357610182565b8063a457c2d7146104f5578063a9059cbb1461052e578063d505accf1461056757610182565b806395d89b41116100bd57806395d89b41146104ac578063982aaf6b146104b45780639dc29fac146104bc57610182565b80638129fc1c146104735780638da5cb5b1461047b57610182565b8063395093511161013a57806370a082311161011457806370a0823114610405578063715018a6146104385780637ecebe001461044057610182565b806339509351146102cc57806340c10f1914610305578063654935f41461034057610182565b806318160ddd1161016b57806318160ddd1461025157806323b872dd1461026b578063313ce567146102ae57610182565b806306fdde0314610187578063095ea7b314610204575b600080fd5b61018f61063b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023d6004803603604081101561021a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356106ef565b604080519115158252519081900360200190f35b610259610705565b60408051918252519081900360200190f35b61023d6004803603606081101561028157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561070b565b6102b6610781565b6040805160ff9092168252519081900360200190f35b61023d600480360360408110156102e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561078a565b61033e6004803603604081101561031b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107cd565b005b61033e6004803603606081101561035657600080fd5b81019060208101813564010000000081111561037157600080fd5b82018360208201111561038357600080fd5b803590602001918460018302840111640100000000831117156103a557600080fd5b9193909290916020810190356401000000008111156103c357600080fd5b8201836020820111156103d557600080fd5b803590602001918460018302840111640100000000831117156103f757600080fd5b91935091503560ff16610883565b6102596004803603602081101561041b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661097d565b61033e61098e565b6102596004803603602081101561045657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610aa5565b61033e610ab7565b610483610bd3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61018f610bef565b610259610c6e565b61033e600480360360408110156104d257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c92565b61023d6004803603604081101561050b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d44565b61023d6004803603604081101561054457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da0565b61033e600480360360e081101561057d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610dad565b610259600480360360408110156105db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166110da565b61033e6004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611112565b6102596112b4565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b60006106fc3384846113aa565b50600192915050565b60675490565b60006107188484846114f1565b6107778433610772856040518060600160405280602881526020016120606028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906116c3565b6113aa565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916106fc9185906107729086611774565b6107d56117ef565b73ffffffffffffffffffffffffffffffffffffffff166107f3610bd3565b73ffffffffffffffffffffffffffffffffffffffff161461087557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087f82826117f3565b5050565b61088b6117ef565b73ffffffffffffffffffffffffffffffffffffffff166108a9610bd3565b73ffffffffffffffffffffffffffffffffffffffff161461092b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61093760688686611ebf565b5061094460698484611ebf565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b600061098882611926565b92915050565b6109966117ef565b73ffffffffffffffffffffffffffffffffffffffff166109b4610bd3565b73ffffffffffffffffffffffffffffffffffffffff1614610a3657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610ad05750610ad061194e565b80610ade575060005460ff16155b610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015610b9957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610ba161195f565b8015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106e55780601f106106ba576101008083540402835291602001916106e5565b7f000000000000000000000000000000000000000000000000000000000000000081565b610c9a6117ef565b73ffffffffffffffffffffffffffffffffffffffff16610cb8610bd3565b73ffffffffffffffffffffffffffffffffffffffff1614610d3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087f8282611a51565b60006106fc3384610772856040518060600160405280602581526020016120f26025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116c3565b60006106fc3384846114f1565b83421115610e1c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610e9e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f0000000000000000000000000000000000000000000000000000000000000000610f576112b4565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ff1573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461109757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556110cd8b8b8b6113aa565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61111a6117ef565b73ffffffffffffffffffffffffffffffffffffffff16611138610bd3565b73ffffffffffffffffffffffffffffffffffffffff16146111ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611226576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fc46026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561133b5780601f1061131957610100808354040283529182019161133b565b820191906000526020600020905b815481529060010190602001808311611327575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b73ffffffffffffffffffffffffffffffffffffffff8316611416576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120ce6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611fea6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661155d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120a96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f7f6023913960400191505060405180910390fd5b6115d4838383611b9b565b61161e8160405180606001604052806026815260200161200c6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906116c3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260656020526040808220939093559084168152205461165a9082611774565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578181015183820152602001611719565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156117e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff821661187557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61188160008383611b9b565b60675461188e9082611774565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546118c19082611774565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b600061195930611ba0565b15905090565b600054610100900460ff1680611978575061197861194e565b80611986575060005460ff16155b6119db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015611a4157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611a49611ba6565b610ba1611cb8565b73ffffffffffffffffffffffffffffffffffffffff8216611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120886021913960400191505060405180910390fd5b611ac982600083611b9b565b611b1381604051806060016040528060228152602001611fa26022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906116c3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611b469082611e48565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611bbf5750611bbf61194e565b80611bcd575060005460ff16155b611c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611cd15750611cd161194e565b80611cdf575060005460ff16155b611d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611da46117ef565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611eb957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611ef55760008555611f59565b82601f10611f2c578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f59565b82800160010185558215611f59579182015b82811115611f59578235825591602001919060010190611f3e565b50611f65929150611f69565b5090565b5b80821115611f655760008155600101611f6a56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201860323cf2dad5a97da6fea02da75e184d7a3beb3d626b16d45b89db6c43887864736f6c63430007060033"; + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c61214c6100a560003980610f30525080611356525080610c705280610ecc525061214c6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638129fc1c116100d8578063a457c2d71161008c578063dd62ed3e11610066578063dd62ed3e146105c5578063f2fde38b14610600578063f698da251461063357610182565b8063a457c2d7146104f5578063a9059cbb1461052e578063d505accf1461056757610182565b806395d89b41116100bd57806395d89b41146104ac578063982aaf6b146104b45780639dc29fac146104bc57610182565b80638129fc1c146104735780638da5cb5b1461047b57610182565b8063395093511161013a57806370a082311161011457806370a0823114610405578063715018a6146104385780637ecebe001461044057610182565b806339509351146102cc57806340c10f1914610305578063654935f41461034057610182565b806318160ddd1161016b57806318160ddd1461025157806323b872dd1461026b578063313ce567146102ae57610182565b806306fdde0314610187578063095ea7b314610204575b600080fd5b61018f61063b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023d6004803603604081101561021a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356106ef565b604080519115158252519081900360200190f35b610259610705565b60408051918252519081900360200190f35b61023d6004803603606081101561028157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561070b565b6102b6610781565b6040805160ff9092168252519081900360200190f35b61023d600480360360408110156102e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561078a565b61033e6004803603604081101561031b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107cd565b005b61033e6004803603606081101561035657600080fd5b81019060208101813564010000000081111561037157600080fd5b82018360208201111561038357600080fd5b803590602001918460018302840111640100000000831117156103a557600080fd5b9193909290916020810190356401000000008111156103c357600080fd5b8201836020820111156103d557600080fd5b803590602001918460018302840111640100000000831117156103f757600080fd5b91935091503560ff16610883565b6102596004803603602081101561041b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661097d565b61033e61098e565b6102596004803603602081101561045657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610aa5565b61033e610ab7565b610483610bd3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61018f610bef565b610259610c6e565b61033e600480360360408110156104d257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c92565b61023d6004803603604081101561050b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610d44565b61023d6004803603604081101561054457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da0565b61033e600480360360e081101561057d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610dad565b610259600480360360408110156105db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166110da565b61033e6004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611112565b6102596112b4565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b60006106fc3384846113aa565b50600192915050565b60675490565b60006107188484846114f1565b6107778433610772856040518060600160405280602881526020016120606028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906116c3565b6113aa565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916106fc9185906107729086611774565b6107d56117ef565b73ffffffffffffffffffffffffffffffffffffffff166107f3610bd3565b73ffffffffffffffffffffffffffffffffffffffff161461087557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087f82826117f3565b5050565b61088b6117ef565b73ffffffffffffffffffffffffffffffffffffffff166108a9610bd3565b73ffffffffffffffffffffffffffffffffffffffff161461092b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61093760688686611ebf565b5061094460698484611ebf565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b600061098882611926565b92915050565b6109966117ef565b73ffffffffffffffffffffffffffffffffffffffff166109b4610bd3565b73ffffffffffffffffffffffffffffffffffffffff1614610a3657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610ad05750610ad061194e565b80610ade575060005460ff16155b610b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015610b9957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610ba161195f565b8015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106e55780601f106106ba576101008083540402835291602001916106e5565b7f000000000000000000000000000000000000000000000000000000000000000081565b610c9a6117ef565b73ffffffffffffffffffffffffffffffffffffffff16610cb8610bd3565b73ffffffffffffffffffffffffffffffffffffffff1614610d3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087f8282611a51565b60006106fc3384610772856040518060600160405280602581526020016120f26025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906116c3565b60006106fc3384846114f1565b83421115610e1c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610e9e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f0000000000000000000000000000000000000000000000000000000000000000610f576112b4565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ff1573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461109757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556110cd8b8b8b6113aa565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61111a6117ef565b73ffffffffffffffffffffffffffffffffffffffff16611138610bd3565b73ffffffffffffffffffffffffffffffffffffffff16146111ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611226576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611fc46026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561133b5780601f1061131957610100808354040283529182019161133b565b820191906000526020600020905b815481529060010190602001808311611327575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b73ffffffffffffffffffffffffffffffffffffffff8316611416576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120ce6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611fea6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661155d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120a96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f7f6023913960400191505060405180910390fd5b6115d4838383611b9b565b61161e8160405180606001604052806026815260200161200c6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906116c3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260656020526040808220939093559084168152205461165a9082611774565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578181015183820152602001611719565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156117e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff821661187557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61188160008383611b9b565b60675461188e9082611774565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546118c19082611774565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b600061195930611ba0565b15905090565b600054610100900460ff1680611978575061197861194e565b80611986575060005460ff16155b6119db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015611a4157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611a49611ba6565b610ba1611cb8565b73ffffffffffffffffffffffffffffffffffffffff8216611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120886021913960400191505060405180910390fd5b611ac982600083611b9b565b611b1381604051806060016040528060228152602001611fa26022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906116c3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611b469082611e48565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611bbf5750611bbf61194e565b80611bcd575060005460ff16155b611c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015610ba157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611cd15750611cd161194e565b80611cdf575060005460ff16155b611d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612032602e913960400191505060405180910390fd5b600054610100900460ff16158015611d9a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611da46117ef565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610bd057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611eb957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611ef55760008555611f59565b82601f10611f2c578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f59565b82800160010185558215611f59579182015b82811115611f59578235825591602001919060010190611f3e565b50611f65929150611f69565b5090565b5b80821115611f655760008155600101611f6a56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207c78cdb734e441a11b155765ca49705ce4c15bdfcc9bec64e7129a6a4c15c27e64736f6c63430007060033"; export class BridgeToken__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/Common__factory.ts b/typescript/typechain/optics-xapps/factories/Common__factory.ts index e1c9808f5..a766af041 100644 --- a/typescript/typechain/optics-xapps/factories/Common__factory.ts +++ b/typescript/typechain/optics-xapps/factories/Common__factory.ts @@ -71,7 +71,7 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "committedRoot", outputs: [ { internalType: "bytes32", diff --git a/typescript/typechain/optics-xapps/factories/ETHHelper__factory.ts b/typescript/typechain/optics-xapps/factories/ETHHelper__factory.ts index 92ee11445..fe8106fc3 100644 --- a/typescript/typechain/optics-xapps/factories/ETHHelper__factory.ts +++ b/typescript/typechain/optics-xapps/factories/ETHHelper__factory.ts @@ -101,7 +101,7 @@ const _abi = [ ]; const _bytecode = - "0x60c060405234801561001057600080fd5b5060405161045d38038061045d8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103626100fb6000398061023e52806102e052508061014152806101fb52806102bc52506103626000f3fe60806040526004361061005a5760003560e01c80633fc8cef3116100435780633fc8cef3146100ad578063e78cea92146100eb578063ec93e5f0146101005761005a565b806303c1d2831461005f5780632e96d5a31461008a575b600080fd5b6100886004803603604081101561007557600080fd5b5063ffffffff813516906020013561013f565b005b610088600480360360208110156100a057600080fd5b503563ffffffff166102a5565b3480156100b957600080fd5b506100c26102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f757600080fd5b506100c26102de565b6100886004803603604081101561011657600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff16610302565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b5050604080517f1cabf08f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff881660448301526064820187905291517f00000000000000000000000000000000000000000000000000000000000000009092169450631cabf08f9350608480820193506000929182900301818387803b15801561028957600080fd5b505af115801561029d573d6000803e3d6000fd5b505050505050565b6102b7816102b233610313565b61013f565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61030f826102b283610313565b5050565b73ffffffffffffffffffffffffffffffffffffffff169056fea2646970667358221220f8f10fe684884a10e05477198a5f793e889e408ab7ef2e678e1bb6db3a7b5d5f64736f6c63430007060033"; + "0x60c060405234801561001057600080fd5b5060405161045d38038061045d8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103626100fb6000398061023e52806102e052508061014152806101fb52806102bc52506103626000f3fe60806040526004361061005a5760003560e01c80633fc8cef3116100435780633fc8cef3146100ad578063e78cea92146100eb578063ec93e5f0146101005761005a565b806303c1d2831461005f5780632e96d5a31461008a575b600080fd5b6100886004803603604081101561007557600080fd5b5063ffffffff813516906020013561013f565b005b610088600480360360208110156100a057600080fd5b503563ffffffff166102a5565b3480156100b957600080fd5b506100c26102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f757600080fd5b506100c26102de565b6100886004803603604081101561011657600080fd5b50803563ffffffff16906020013573ffffffffffffffffffffffffffffffffffffffff16610302565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b5050604080517f1cabf08f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff881660448301526064820187905291517f00000000000000000000000000000000000000000000000000000000000000009092169450631cabf08f9350608480820193506000929182900301818387803b15801561028957600080fd5b505af115801561029d573d6000803e3d6000fd5b505050505050565b6102b7816102b233610313565b61013f565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61030f826102b283610313565b5050565b73ffffffffffffffffffffffffffffffffffffffff169056fea26469706673582212208e5e110db6d71757d8d64426455cd6e1f2646ec8137978ec168b8d22f04659b864736f6c63430007060033"; export class ETHHelper__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/Home__factory.ts b/typescript/typechain/optics-xapps/factories/Home__factory.ts index 9195bad53..27d3dcc57 100644 --- a/typescript/typechain/optics-xapps/factories/Home__factory.ts +++ b/typescript/typechain/optics-xapps/factories/Home__factory.ts @@ -28,6 +28,12 @@ const _abi = [ { anonymous: false, inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "messageHash", + type: "bytes32", + }, { indexed: true, internalType: "uint256", @@ -37,19 +43,13 @@ const _abi = [ { indexed: true, internalType: "uint64", - name: "destinationAndSequence", + name: "destinationAndNonce", type: "uint64", }, - { - indexed: true, - internalType: "bytes32", - name: "leaf", - type: "bytes32", - }, { indexed: false, internalType: "bytes32", - name: "current", + name: "committedRoot", type: "bytes32", }, { @@ -228,12 +228,12 @@ const _abi = [ }, { inputs: [], - name: "count", + name: "committedRoot", outputs: [ { - internalType: "uint256", + internalType: "bytes32", name: "", - type: "uint256", + type: "bytes32", }, ], stateMutability: "view", @@ -241,12 +241,12 @@ const _abi = [ }, { inputs: [], - name: "current", + name: "count", outputs: [ { - internalType: "bytes32", + internalType: "uint256", name: "", - type: "bytes32", + type: "uint256", }, ], stateMutability: "view", @@ -255,50 +255,50 @@ const _abi = [ { inputs: [ { - internalType: "bytes32", - name: "_oldRoot", - type: "bytes32", - }, - { - internalType: "bytes32[2]", - name: "_newRoot", - type: "bytes32[2]", + internalType: "uint32", + name: "_destinationDomain", + type: "uint32", }, { - internalType: "bytes", - name: "_signature", - type: "bytes", + internalType: "bytes32", + name: "_recipientAddress", + type: "bytes32", }, { internalType: "bytes", - name: "_signature2", + name: "_messageBody", type: "bytes", }, ], - name: "doubleUpdate", + name: "dispatch", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ - { - internalType: "uint32", - name: "_destinationDomain", - type: "uint32", - }, { internalType: "bytes32", - name: "_recipientAddress", + name: "_oldRoot", type: "bytes32", }, + { + internalType: "bytes32[2]", + name: "_newRoot", + type: "bytes32[2]", + }, { internalType: "bytes", - name: "_messageBody", + name: "_signature", + type: "bytes", + }, + { + internalType: "bytes", + name: "_signature2", type: "bytes", }, ], - name: "enqueue", + name: "doubleUpdate", outputs: [], stateMutability: "nonpayable", type: "function", @@ -371,6 +371,25 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "owner", @@ -449,25 +468,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - name: "sequences", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -513,7 +513,7 @@ const _abi = [ outputs: [ { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -555,7 +555,7 @@ const _abi = [ inputs: [ { internalType: "bytes32", - name: "_currentRoot", + name: "_committedRoot", type: "bytes32", }, { @@ -603,7 +603,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051612f90380380612f908339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f1d610073600039806109775280610abf5280610f9d52806113ee5250612f1d6000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80639d54f419116100ee578063c4d66de811610097578063ebf0c71711610071578063ebf0c7171461066e578063f2fde38b14610676578063f6d16102146106a9578063fd54b228146106b1576101a3565b8063c4d66de81461057b578063d3468639146105ae578063df034cd014610666576101a3565b8063ab91c7b0116100c8578063ab91c7b014610498578063b31c01fb146104a0578063c19d93fb14610552576101a3565b80639d54f419146104555780639df6c8e1146104885780639fa6a6e314610490576101a3565b8063522ae002116101505780638da5cb5b1161012a5780638da5cb5b1461033f5780638e4e30e0146103705780639776120e14610422576101a3565b8063522ae00214610327578063715018a61461032f5780638d3638f414610337576101a3565b80632bef2892116101815780632bef2892146102cd57806336e104de146102fe57806345630b1a1461031f576101a3565b806306661abd146101a857806319d9d21a146101c25780632752e0f414610291575b600080fd5b6101b06106b9565b60408051918252519081900360200190f35b61028f600480360360a08110156101d857600080fd5b81359160208101918101906080810160608201356401000000008111156101fe57600080fd5b82018360208201111561021057600080fd5b8035906020019184600183028401116401000000008311171561023257600080fd5b91939092909160208101903564010000000081111561025057600080fd5b82018360208201111561026257600080fd5b8035906020019184600183028401116401000000008311171561028457600080fd5b5090925090506106bf565b005b6102b4600480360360208110156102a757600080fd5b503563ffffffff1661091c565b6040805163ffffffff9092168252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b5035610935565b604080519115158252519081900360200190f35b610306610948565b6040805192835260208301919091528051918290030190f35b6101b0610970565b6101b06109a0565b61028f6109a6565b6102b4610abd565b610347610ae1565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ea6004803603606081101561038657600080fd5b8135916020810135918101906060810160408201356401000000008111156103ad57600080fd5b8201836020820111156103bf57600080fd5b803590602001918460018302840111640100000000831117156103e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610afd945050505050565b61028f6004803603602081101561043857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d50565b61028f6004803603602081101561046b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e04565b610347610e94565b6101b0610eb1565b6101b0610eb7565b61028f600480360360608110156104b657600080fd5b8135916020810135918101906060810160408201356401000000008111156104dd57600080fd5b8201836020820111156104ef57600080fd5b8035906020019184600183028401116401000000008311171561051157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ec3945050505050565b61055a611061565b6040518082600281111561056a57fe5b815260200191505060405180910390f35b61028f6004803603602081101561059157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611082565b61028f600480360360608110156105c457600080fd5b63ffffffff823516916020810135918101906060810160408201356401000000008111156105f157600080fd5b82018360208201111561060357600080fd5b8035906020019184600183028401116401000000008311171561062557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611295945050505050565b61034761150b565b6101b0611527565b61028f6004803603602081101561068c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611533565b6101b06116d5565b6101b06116e1565b60205490565b600260865474010000000000000000000000000000000000000000900460ff1660028111156106ea57fe5b141561075757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261079991889188359188908890819084018382808284376000920191909152506116e792505050565b80156107e857506107e886866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e792505050565b80156107f957508435602086013514155b1561091457610806611779565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b61011b6020526000908152604090205463ffffffff1681565b6000610942605383611855565b92915050565b60008061095560536118c5565b1561096c5760875491506109696053611905565b90505b9091565b600061099b7f0000000000000000000000000000000000000000000000000000000000000000611942565b905090565b61080081565b6109ae6119b7565b73ffffffffffffffffffffffffffffffffffffffff166109cc610ae1565b73ffffffffffffffffffffffffffffffffffffffff1614610a4e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b2a57fe5b1415610b9757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610ba28484846116e7565b610c0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c88605384611855565b610d4557610c94611779565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d01578181015183820152602001610ce9565b50505050905090810190601f168015610d2e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d49565b5060005b9392505050565b610d586119b7565b73ffffffffffffffffffffffffffffffffffffffff16610d76610ae1565b73ffffffffffffffffffffffffffffffffffffffff1614610df857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e01816119bb565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610e8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610e0181611aa9565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b60875481565b600061099b60536118c5565b600260865474010000000000000000000000000000000000000000900460ff166002811115610eee57fe5b1415610f5b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f66838383610afd565b15610f705761105c565b6000610f7c6053611b22565b905082811415610f8c5750610f92565b50610f70565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611021578181015183820152602001611009565b50505050905090810190601f16801561104e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff168061109b575061109b611c5b565b806110a9575060525460ff16155b6110fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561116457605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61116c611c6c565b611175826119bb565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d602081101561120b57600080fd5b5051905061121881611d8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b600260865474010000000000000000000000000000000000000000900460ff1660028111156112c057fe5b141561132d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561139f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556114177f00000000000000000000000000000000000000000000000000000000000000003384888888611f24565b8051602082012090915061142c600082611ffa565b61143f611437611527565b605390612102565b508061144b878561216f565b67ffffffffffffffff16600161145f6106b9565b037f212a0c695ace91176d2e6d1ba9200ae05dbe3e8b58f2b310103eb27777b13504608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156114c85781810151838201526020016114b0565b50505050905090810190601f1680156114f55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b600061099b6000612189565b61153b6119b7565b73ffffffffffffffffffffffffffffffffffffffff16611559610ae1565b73ffffffffffffffffffffffffffffffffffffffff16146115db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e506026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600061099b6053611905565b60205481565b6000806116f2610970565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506117338161219c565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661175982856121ed565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611781612287565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156117f457600080fd5b505af1158015611808573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d455760008181526001850160205260409020548314156118bd576001915050610942565b60010161186d565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166118fd82826122c8565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119c4816122e2565b611a2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b5a82826122c8565b611bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c16576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c66306122e2565b15905090565b605254610100900460ff1680611c855750611c85611c5b565b80611c93575060525460ff16155b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d4e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d566122e8565b611d5e6123fa565b8015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611da85750611da8611c5b565b80611db6575060525460ff16155b611e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e7961258a565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b60208310611fb557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f78565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161207057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156120ff5781600116600114156120ac57828482602081106120a257fe5b0155506112919050565b8381602081106120b857fe5b0154836040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250600282816120f457fe5b049150600101612080565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610942576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b600061094282612197612676565b612b37565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461225f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61227d86828585612bf5565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123015750612301611c5b565b8061230f575060525460ff16155b612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d5e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124135750612413611c5b565b80612421575060525460ff16155b612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff161580156124dc57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006124e66119b7565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610e0157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806125a357506125a3611c5b565b806125b1575060525460ff16155b612606576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561266c57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d5e6053612dec565b61267e612e30565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612bed57600182821c166000868360208110612b5e57fe5b015490508160011415612ba15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612be3565b84868460208110612bae57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612b41565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e766022913960400191505060405180910390fd5b8360ff16601b1480612c8557508360ff16601c145b612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ec66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612d36573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610e015780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a264697066735822122023a905fdab3d67a2d75abdebf90b4e4d410924ae29a23cbe5aa62d619f12755b64736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b50604051612f90380380612f908339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff16612f1d6100736000398061095e5280610aac5280610f8452806115c45250612f1d6000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80639d54f419116100ee578063c4d66de811610097578063f2fde38b11610071578063f2fde38b146105be578063f6d16102146105f1578063fa31de01146105f9578063fd54b228146106b1576101a3565b8063c4d66de81461057b578063df034cd0146105ae578063ebf0c717146105b6576101a3565b8063b31c01fb116100c8578063b31c01fb1461047d578063b95a20011461052f578063c19d93fb14610552576101a3565b80639d54f4191461043a5780639df6c8e11461046d578063ab91c7b014610475576101a3565b806367a6771d116101505780638da5cb5b1161012a5780638da5cb5b146103245780638e4e30e0146103555780639776120e14610407576101a3565b806367a6771d146102f3578063715018a6146102fb5780638d3638f414610303576101a3565b806336e104de1161018157806336e104de146102c257806345630b1a146102e3578063522ae002146102eb576101a3565b806306661abd146101a857806319d9d21a146101c25780632bef289214610291575b600080fd5b6101b06106b9565b60408051918252519081900360200190f35b61028f600480360360a08110156101d857600080fd5b81359160208101918101906080810160608201356401000000008111156101fe57600080fd5b82018360208201111561021057600080fd5b8035906020019184600183028401116401000000008311171561023257600080fd5b91939092909160208101903564010000000081111561025057600080fd5b82018360208201111561026257600080fd5b8035906020019184600183028401116401000000008311171561028457600080fd5b5090925090506106bf565b005b6102ae600480360360208110156102a757600080fd5b503561091c565b604080519115158252519081900360200190f35b6102ca61092f565b6040805192835260208301919091528051918290030190f35b6101b0610957565b6101b0610987565b6101b061098d565b61028f610993565b61030b610aaa565b6040805163ffffffff9092168252519081900360200190f35b61032c610ace565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102ae6004803603606081101561036b57600080fd5b81359160208101359181019060608101604082013564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460018302840111640100000000831117156103c657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610aea945050505050565b61028f6004803603602081101561041d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d3d565b61028f6004803603602081101561045057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610df1565b61032c610e81565b6101b0610e9e565b61028f6004803603606081101561049357600080fd5b8135916020810135918101906060810160408201356401000000008111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111640100000000831117156104ee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eaa945050505050565b61030b6004803603602081101561054557600080fd5b503563ffffffff16611048565b61055a611061565b6040518082600281111561056a57fe5b815260200191505060405180910390f35b61028f6004803603602081101561059157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611082565b61032c611295565b6101b06112b1565b61028f600480360360208110156105d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112bd565b6101b061145f565b61028f6004803603606081101561060f57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561063c57600080fd5b82018360208201111561064e57600080fd5b8035906020019184600183028401116401000000008311171561067057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061146b945050505050565b6101b06116e1565b60205490565b600260865474010000000000000000000000000000000000000000900460ff1660028111156106ea57fe5b141561075757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261079991889188359188908890819084018382808284376000920191909152506116e792505050565b80156107e857506107e886866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e792505050565b80156107f957508435602086013514155b1561091457610806611779565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b6000610929605383611855565b92915050565b60008061093c60536118c5565b156109535760875491506109506053611905565b90505b9091565b60006109827f0000000000000000000000000000000000000000000000000000000000000000611942565b905090565b61080081565b60875481565b61099b6119b7565b73ffffffffffffffffffffffffffffffffffffffff166109b9610ace565b73ffffffffffffffffffffffffffffffffffffffff1614610a3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60e95460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360e980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60e95473ffffffffffffffffffffffffffffffffffffffff1690565b6000600260865474010000000000000000000000000000000000000000900460ff166002811115610b1757fe5b1415610b8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b8f8484846116e7565b610bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b6087548414610c6a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f7420612063757272656e7420757064617465000000000000000000000000604482015290519081900360640190fd5b610c75605384611855565b610d3257610c81611779565b7f6844fd5e21c932b5197b78ac11bf96e2eaa4e882dd0c88087060cf2065c04ab28484846040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610cee578181015183820152602001610cd6565b50505050905090810190601f168015610d1b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1506001610d36565b5060005b9392505050565b610d456119b7565b73ffffffffffffffffffffffffffffffffffffffff16610d63610ace565b73ffffffffffffffffffffffffffffffffffffffff1614610de557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610dee816119bb565b50565b61011c5473ffffffffffffffffffffffffffffffffffffffff163314610e7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f21757064617465724d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b610dee81611aa9565b61011c5473ffffffffffffffffffffffffffffffffffffffff1681565b600061098260536118c5565b600260865474010000000000000000000000000000000000000000900460ff166002811115610ed557fe5b1415610f4257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610f4d838383610aea565b15610f5757611043565b6000610f636053611b22565b905082811415610f735750610f79565b50610f57565b8160878190555081837f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611008578181015183820152602001610ff0565b50505050905090810190601f1680156110355780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b505050565b61011b6020526000908152604090205463ffffffff1681565b60865474010000000000000000000000000000000000000000900460ff1681565b605254610100900460ff168061109b575061109b611c5b565b806110a9575060525460ff16155b6110fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561116457605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61116c611c6c565b611175826119bb565b61011c54604080517fdf034cd0000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163df034cd0916004808301926020929190829003018186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d602081101561120b57600080fd5b5051905061121881611d8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60865473ffffffffffffffffffffffffffffffffffffffff1681565b60006109826000611f24565b6112c56119b7565b73ffffffffffffffffffffffffffffffffffffffff166112e3610ace565b73ffffffffffffffffffffffffffffffffffffffff161461136557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166113d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612e506026913960400191505060405180910390fd5b60e95460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006109826053611905565b600260865474010000000000000000000000000000000000000000900460ff16600281111561149657fe5b141561150357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b6108008151111561157557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808416600090815261011b602052604081208054808416600181019094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790556115ed7f00000000000000000000000000000000000000000000000000000000000000003384888888611f37565b8051602082012090915061160260008261200d565b61161561160d6112b1565b605390612115565b506116208684612182565b67ffffffffffffffff1660016116346106b9565b03827f9d4c83d2e57d7d381feb264b44a5015e7f9ef26340f4fc46b558a6dc16dd811a608754866040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561169e578181015183820152602001611686565b50505050905090810190601f1680156116cb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050505050565b60205481565b6000806116f2610957565b85856040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012090506117338161219c565b60865490915073ffffffffffffffffffffffffffffffffffffffff1661175982856121ed565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611781612287565b61011c54604080517f5b3c2cbf000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921691635b3c2cbf9160248082019260009290919082900301818387803b1580156117f457600080fd5b505af1158015611808573d6000803e3d6000fd5b505060865460405133935073ffffffffffffffffffffffffffffffffffffffff90911691507f98064af315f26d7333ba107ba43a128ec74345f4d4e6f2549840fe092a1c8bce90600090a3565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111610d325760008181526001850160205260409020548314156118bd576001915050610929565b60010161186d565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166118fd82826122c8565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b3390565b6119c4816122e2565b611a2f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f21636f6e747261637420757064617465724d616e616765720000000000000000604482015290519081900360640190fd5b61011c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f958d788fb4c373604cd4c73aa8c592de127d0819b49bb4dc02c8ecd666e965bf9181900360200190a150565b6086805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f9e5f57e4ee5f9eeac3131028d48f19d80820ce6fa93c4c66cc82a3e2b9837c329181900360200190a150565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611b5a82826122c8565b611bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611c16576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b6000611c66306122e2565b15905090565b605254610100900460ff1680611c855750611c85611c5b565b80611c93575060525460ff16155b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d4e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d566122e8565b611d5e6123fa565b8015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff1680611da85750611da8611c5b565b80611db6575060525460ff16155b611e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611e7157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611e7961258a565b608680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561129157605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555050565b600061092982611f32612676565b612b37565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b60208310611fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f8b565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161208357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156121125781600116600114156120bf57828482602081106120b557fe5b0155506112919050565b8381602081106120cb57fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161210757fe5b049150600101612093565b50fe5b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115610929576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461225f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61227d86828585612bf5565b9695505050505050565b608680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60019103016fffffffffffffffffffffffffffffffff1690565b3b151590565b605254610100900460ff16806123015750612301611c5b565b8061230f575060525460ff16155b612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff16158015611d5e57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806124135750612413611c5b565b80612421575060525460ff16155b612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff161580156124dc57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60006124e66119b7565b60e980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610dee57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b605254610100900460ff16806125a357506125a3611c5b565b806125b1575060525460ff16155b612606576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612e98602e913960400191505060405180910390fd5b605254610100900460ff1615801561266c57605280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611d5e6053612dec565b61267e612e30565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015612bed57600182821c166000868360208110612b5e57fe5b015490508160011415612ba15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450612be3565b84868460208110612bae57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101612b41565b505092915050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e766022913960400191505060405180910390fd5b8360ff16601b1480612c8557508360ff16601c145b612cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612ec66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612d36573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546fffffffffffffffffffffffffffffffff16610dee5780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b604051806104000160405280602090602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212209136b2e41e5ab8723fb237b362583bdcc56a69455eccb55195497fca9566ba3b64736f6c63430007060033"; export class Home__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/MockCore__factory.ts b/typescript/typechain/optics-xapps/factories/MockCore__factory.ts index 6afa259b1..1028b34ad 100644 --- a/typescript/typechain/optics-xapps/factories/MockCore__factory.ts +++ b/typescript/typechain/optics-xapps/factories/MockCore__factory.ts @@ -19,7 +19,7 @@ const _abi = [ { indexed: true, internalType: "uint64", - name: "destinationAndSequence", + name: "destinationAndNonce", type: "uint64", }, { @@ -107,7 +107,7 @@ const _abi = [ type: "bytes", }, ], - name: "enqueue", + name: "dispatch", outputs: [], stateMutability: "nonpayable", type: "function", @@ -157,6 +157,25 @@ const _abi = [ stateMutability: "pure", type: "function", }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -215,25 +234,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - name: "sequences", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [], name: "tree", @@ -250,7 +250,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50610ef4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639fa92f9d11610081578063ebf0c7171161005b578063ebf0c71714610260578063f6d1610214610268578063fd54b22814610270576100d4565b80639fa92f9d146101a3578063ab91c7b0146101d4578063d3468639146101dc576100d4565b80635190bc53116100b25780635190bc5314610160578063522ae002146101935780638d3638f41461019b576100d4565b806306661abd146100d95780632752e0f4146100f35780632bef28921461012f575b600080fd5b6100e1610278565b60408051918252519081900360200190f35b6101166004803603602081101561010957600080fd5b503563ffffffff1661027e565b6040805163ffffffff9092168252519081900360200190f35b61014c6004803603602081101561014557600080fd5b5035610296565b604080519115158252519081900360200190f35b61014c6004803603602081101561017657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a9565b6100e16102af565b6101166102b5565b6101ab6102ba565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e16102be565b61025e600480360360608110156101f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561021f57600080fd5b82018360208201111561023157600080fd5b8035906020019184600183028401116401000000008311171561025357600080fd5b5090925090506102cf565b005b6100e1610575565b6100e1610581565b6100e161058d565b60205490565b60866020526000908152604090205463ffffffff1681565b60006102a3605383610593565b92915050565b50600190565b61080081565b600590565b3090565b60006102ca605361060d565b905090565b61080081111561034057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21746f6f20626967000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808516600090815260866020526040812054909116906103bf6103666102b5565b3373ffffffffffffffffffffffffffffffffffffffff1660001b84898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061064d92505050565b805160208201209091506103d4600082610723565b6103e76103df610575565b60539061082f565b50806103f3888561089c565b67ffffffffffffffff166001610407610278565b037f1a2a870182b13cdb4a0ec2e16f96df5a0e20b1327d43564f7f0e62992a55bd6c856040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046757818101518382015260200161044f565b50505050905090810190601f1680156104945780820380516001836020036101000a031916815260200191505b509250505060405180910390a4858763ffffffff167f75792710cca0c980daac207dc69865f88b53833bd172dcac111b2b42758202d6878760405180806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039550909350505050a3505063ffffffff948516600090815260866020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660019290920190951617909355505050565b60006102ca60006108b6565b60006102ca60536108c9565b60205481565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116106035760008181526001850160205260409020548314156105fb5760019150506102a3565b6001016105ab565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166106458282610906565b949350505050565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b602083106106de57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106a1565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff1161079957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b60208110156108285781600116600114156107d557828482602081106107cb57fe5b01555061082b9050565b8381602081106107e157fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161081d57fe5b0491506001016107a9565b50fe5b5050565b81546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000092839004821660010191821690920291909117835581156102a3576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b60006102a3826108c4610920565b610de1565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b60019103016fffffffffffffffffffffffffffffffff1690565b610928610e9f565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015610e9757600182821c166000868360208110610e0857fe5b015490508160011415610e4b5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610e8d565b84868460208110610e5857fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610deb565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220403dc37e81623015a170fc78219f7a91e078ac7d593c44e4411e10d06b301caf64736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50610ef4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063ab91c7b011610081578063f6d161021161005b578063f6d16102146101e4578063fa31de01146101ec578063fd54b22814610270576100d4565b8063ab91c7b0146101b1578063b95a2001146101b9578063ebf0c717146101dc576100d4565b8063522ae002116100b2578063522ae002146101575780638d3638f41461015f5780639fa92f9d14610180576100d4565b806306661abd146100d95780632bef2892146100f35780635190bc5314610124575b600080fd5b6100e1610278565b60408051918252519081900360200190f35b6101106004803603602081101561010957600080fd5b503561027e565b604080519115158252519081900360200190f35b6101106004803603602081101561013a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610291565b6100e1610297565b61016761029d565b6040805163ffffffff9092168252519081900360200190f35b6101886102a2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100e16102a6565b610167600480360360208110156101cf57600080fd5b503563ffffffff166102b7565b6100e16102cf565b6100e16102db565b61026e6004803603606081101561020257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184600183028401116401000000008311171561026357600080fd5b5090925090506102e7565b005b6100e161058d565b60205490565b600061028b605383610593565b92915050565b50600190565b61080081565b600590565b3090565b60006102b2605361060d565b905090565b60866020526000908152604090205463ffffffff1681565b60006102b2600061064d565b60006102b26053610660565b61080081111561035857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21746f6f20626967000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b63ffffffff808516600090815260866020526040812054909116906103d761037e61029d565b3373ffffffffffffffffffffffffffffffffffffffff1660001b84898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061069d92505050565b805160208201209091506103ec600082610773565b6103ff6103f76102cf565b60539061087f565b508061040b88856108ec565b67ffffffffffffffff16600161041f610278565b037f1a2a870182b13cdb4a0ec2e16f96df5a0e20b1327d43564f7f0e62992a55bd6c856040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047f578181015183820152602001610467565b50505050905090810190601f1680156104ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4858763ffffffff167f75792710cca0c980daac207dc69865f88b53833bd172dcac111b2b42758202d6878760405180806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039550909350505050a3505063ffffffff948516600090815260866020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660019290920190951617909355505050565b60205481565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116106035760008181526001850160205260409020548314156105fb57600191505061028b565b6001016105ab565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691166106458282610906565b949350505050565b600061028b8261065b610920565b610de1565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b6060868686868686604051602001808763ffffffff1660e01b81526004018681526020018563ffffffff1660e01b81526004018463ffffffff1660e01b815260040183815260200182805190602001908083835b6020831061072e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106f1565b6001836020036101000a038019825116818451168082178552505050505050905001965050505050505060405160208183030381529060405290509695505050505050565b602082015463ffffffff116107e957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b6020811015610878578160011660011415610825578284826020811061081b57fe5b01555061087b9050565b83816020811061083157fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161086d57fe5b0491506001016107f9565b50fe5b5050565b81546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000928390048216600101918216909202919091178355811561028b576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b63ffffffff1660209190911b67ffffffff00000000161790565b60019103016fffffffffffffffffffffffffffffffff1690565b610928610e9f565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b6020811015610e9757600182821c166000868360208110610e0857fe5b015490508160011415610e4b5780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610e8d565b84868460208110610e5857fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610deb565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea264697066735822122001d5de1080e30adb3019d49b93d2e482939e1acf50fe10269b6e17baf1702bba64736f6c63430007060033"; export class MockCore__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/MockWeth__factory.ts b/typescript/typechain/optics-xapps/factories/MockWeth__factory.ts index 1a6bc7fcd..08f3162fd 100644 --- a/typescript/typechain/optics-xapps/factories/MockWeth__factory.ts +++ b/typescript/typechain/optics-xapps/factories/MockWeth__factory.ts @@ -493,7 +493,7 @@ const _abi = [ ]; const _bytecode = - "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c61227c6100a560003980611060525080611486525080610d945280610ffc525061227c6000f3fe6080604052600436106101805760003560e01c80638129fc1c116100d6578063a9059cbb1161007f578063dd62ed3e11610059578063dd62ed3e146106c2578063f2fde38b1461070a578063f698da251461074a57610180565b8063a9059cbb14610609578063d0e30db01461064f578063d505accf1461065757610180565b8063982aaf6b116100b0578063982aaf6b146105685780639dc29fac1461057d578063a457c2d7146105c357610180565b80638129fc1c146105005780638da5cb5b1461051557806395d89b411461055357610180565b8063395093511161013857806370a082311161011257806370a082311461046b578063715018a6146104ab5780637ecebe00146104c057610180565b8063395093511461030b57806340c10f1914610351578063654935f41461039957610180565b806318160ddd1161016957806318160ddd1461026957806323b872dd14610290578063313ce567146102e057610180565b806306fdde0314610185578063095ea7b31461020f575b600080fd5b34801561019157600080fd5b5061019a61075f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d45781810151838201526020016101bc565b50505050905090810190601f1680156102015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021b57600080fd5b506102556004803603604081101561023257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610813565b604080519115158252519081900360200190f35b34801561027557600080fd5b5061027e610829565b60408051918252519081900360200190f35b34801561029c57600080fd5b50610255600480360360608110156102b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561082f565b3480156102ec57600080fd5b506102f56108a5565b6040805160ff9092168252519081900360200190f35b34801561031757600080fd5b506102556004803603604081101561032e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ae565b34801561035d57600080fd5b506103976004803603604081101561037457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108f1565b005b3480156103a557600080fd5b50610397600480360360608110156103bc57600080fd5b8101906020810181356401000000008111156103d757600080fd5b8201836020820111156103e957600080fd5b8035906020019184600183028401116401000000008311171561040b57600080fd5b91939092909160208101903564010000000081111561042957600080fd5b82018360208201111561043b57600080fd5b8035906020019184600183028401116401000000008311171561045d57600080fd5b91935091503560ff166109a7565b34801561047757600080fd5b5061027e6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610aa1565b3480156104b757600080fd5b50610397610ab2565b3480156104cc57600080fd5b5061027e600480360360208110156104e357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bc9565b34801561050c57600080fd5b50610397610bdb565b34801561052157600080fd5b5061052a610cf7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561055f57600080fd5b5061019a610d13565b34801561057457600080fd5b5061027e610d92565b34801561058957600080fd5b50610397600480360360408110156105a057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610db6565b3480156105cf57600080fd5b50610255600480360360408110156105e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e68565b34801561061557600080fd5b506102556004803603604081101561062c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ec4565b610397610ed1565b34801561066357600080fd5b50610397600480360360e081101561067a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610edd565b3480156106ce57600080fd5b5061027e600480360360408110156106e557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661120a565b34801561071657600080fd5b506103976004803603602081101561072d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611242565b34801561075657600080fd5b5061027e6113e4565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108095780601f106107de57610100808354040283529160200191610809565b820191906000526020600020905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b60006108203384846114da565b50600192915050565b60675490565b600061083c848484611621565b61089b8433610896856040518060600160405280602881526020016121906028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906117f3565b6114da565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161082091859061089690866118a4565b6108f961191f565b73ffffffffffffffffffffffffffffffffffffffff16610917610cf7565b73ffffffffffffffffffffffffffffffffffffffff161461099957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109a38282611923565b5050565b6109af61191f565b73ffffffffffffffffffffffffffffffffffffffff166109cd610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610a4f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a5b60688686611fef565b50610a6860698484611fef565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b6000610aac82611a56565b92915050565b610aba61191f565b73ffffffffffffffffffffffffffffffffffffffff16610ad8610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610bf45750610bf4611a7e565b80610c02575060005460ff16155b610c57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015610cbd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610cc5611a8f565b8015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108095780601f106107de57610100808354040283529160200191610809565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dbe61191f565b73ffffffffffffffffffffffffffffffffffffffff16610ddc610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610e5e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109a38282611b81565b60006108203384610896856040518060600160405280602581526020016122226025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906117f3565b6000610820338484611621565b610edb3334611923565b565b83421115610f4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610fce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f00000000000000000000000000000000000000000000000000000000000000006110876113e4565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611121573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556111fd8b8b8b6114da565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61124a61191f565b73ffffffffffffffffffffffffffffffffffffffff16611268610cf7565b73ffffffffffffffffffffffffffffffffffffffff16146112ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611356576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120f46026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561146b5780601f1061144957610100808354040283529182019161146b565b820191906000526020600020905b815481529060010190602001808311611457575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b73ffffffffffffffffffffffffffffffffffffffff8316611546576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121fe6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061211a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661168d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121d96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120af6023913960400191505060405180910390fd5b611704838383611ccb565b61174e8160405180606001604052806026815260200161213c6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906117f3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260656020526040808220939093559084168152205461178a90826118a4565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561189c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611861578181015183820152602001611849565b50505050905090810190601f16801561188e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561191857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff82166119a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119b160008383611ccb565b6067546119be90826118a4565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546119f190826118a4565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6000611a8930611cd0565b15905090565b600054610100900460ff1680611aa85750611aa8611a7e565b80611ab6575060005460ff16155b611b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015611b7157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611b79611cd6565b610cc5611de8565b73ffffffffffffffffffffffffffffffffffffffff8216611bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121b86021913960400191505060405180910390fd5b611bf982600083611ccb565b611c43816040518060600160405280602281526020016120d26022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906117f3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611c769082611f78565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611cef5750611cef611a7e565b80611cfd575060005460ff16155b611d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015610cc557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e015750611e01611a7e565b80611e0f575060005460ff16155b611e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015611eca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611ed461191f565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611fe957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826120255760008555612089565b82601f1061205c578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612089565b82800160010185558215612089579182015b8281111561208957823582559160200191906001019061206e565b50612095929150612099565b5090565b5b80821115612095576000815560010161209a56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122090da9b1330cd3f4a6320ae2767161ad02ec6cef851529761b6bf4da61808e11264736f6c63430007060033"; + "0x7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9608052610120604052600160e052603160f81b610100527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660a05261190160f01b60c05234801561007057600080fd5b5060805160a05160c05160f01c61227c6100a560003980611060525080611486525080610d945280610ffc525061227c6000f3fe6080604052600436106101805760003560e01c80638129fc1c116100d6578063a9059cbb1161007f578063dd62ed3e11610059578063dd62ed3e146106c2578063f2fde38b1461070a578063f698da251461074a57610180565b8063a9059cbb14610609578063d0e30db01461064f578063d505accf1461065757610180565b8063982aaf6b116100b0578063982aaf6b146105685780639dc29fac1461057d578063a457c2d7146105c357610180565b80638129fc1c146105005780638da5cb5b1461051557806395d89b411461055357610180565b8063395093511161013857806370a082311161011257806370a082311461046b578063715018a6146104ab5780637ecebe00146104c057610180565b8063395093511461030b57806340c10f1914610351578063654935f41461039957610180565b806318160ddd1161016957806318160ddd1461026957806323b872dd14610290578063313ce567146102e057610180565b806306fdde0314610185578063095ea7b31461020f575b600080fd5b34801561019157600080fd5b5061019a61075f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d45781810151838201526020016101bc565b50505050905090810190601f1680156102015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021b57600080fd5b506102556004803603604081101561023257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610813565b604080519115158252519081900360200190f35b34801561027557600080fd5b5061027e610829565b60408051918252519081900360200190f35b34801561029c57600080fd5b50610255600480360360608110156102b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561082f565b3480156102ec57600080fd5b506102f56108a5565b6040805160ff9092168252519081900360200190f35b34801561031757600080fd5b506102556004803603604081101561032e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ae565b34801561035d57600080fd5b506103976004803603604081101561037457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108f1565b005b3480156103a557600080fd5b50610397600480360360608110156103bc57600080fd5b8101906020810181356401000000008111156103d757600080fd5b8201836020820111156103e957600080fd5b8035906020019184600183028401116401000000008311171561040b57600080fd5b91939092909160208101903564010000000081111561042957600080fd5b82018360208201111561043b57600080fd5b8035906020019184600183028401116401000000008311171561045d57600080fd5b91935091503560ff166109a7565b34801561047757600080fd5b5061027e6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610aa1565b3480156104b757600080fd5b50610397610ab2565b3480156104cc57600080fd5b5061027e600480360360208110156104e357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bc9565b34801561050c57600080fd5b50610397610bdb565b34801561052157600080fd5b5061052a610cf7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561055f57600080fd5b5061019a610d13565b34801561057457600080fd5b5061027e610d92565b34801561058957600080fd5b50610397600480360360408110156105a057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610db6565b3480156105cf57600080fd5b50610255600480360360408110156105e657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e68565b34801561061557600080fd5b506102556004803603604081101561062c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610ec4565b610397610ed1565b34801561066357600080fd5b50610397600480360360e081101561067a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610edd565b3480156106ce57600080fd5b5061027e600480360360408110156106e557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661120a565b34801561071657600080fd5b506103976004803603602081101561072d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611242565b34801561075657600080fd5b5061027e6113e4565b60688054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108095780601f106107de57610100808354040283529160200191610809565b820191906000526020600020905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b60006108203384846114da565b50600192915050565b60675490565b600061083c848484611621565b61089b8433610896856040518060600160405280602881526020016121906028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260666020908152604080832033845290915290205491906117f3565b6114da565b5060019392505050565b606a5460ff1690565b33600081815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161082091859061089690866118a4565b6108f961191f565b73ffffffffffffffffffffffffffffffffffffffff16610917610cf7565b73ffffffffffffffffffffffffffffffffffffffff161461099957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109a38282611923565b5050565b6109af61191f565b73ffffffffffffffffffffffffffffffffffffffff166109cd610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610a4f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a5b60688686611fef565b50610a6860698484611fef565b50606a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff9290921691909117905550505050565b6000610aac82611a56565b92915050565b610aba61191f565b73ffffffffffffffffffffffffffffffffffffffff16610ad8610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606b6020526000908152604090205481565b600054610100900460ff1680610bf45750610bf4611a7e565b80610c02575060005460ff16155b610c57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015610cbd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610cc5611a8f565b8015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b60698054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108095780601f106107de57610100808354040283529160200191610809565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dbe61191f565b73ffffffffffffffffffffffffffffffffffffffff16610ddc610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614610e5e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6109a38282611b81565b60006108203384610896856040518060600160405280602581526020016122226025913933600090815260666020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290205491906117f3565b6000610820338484611621565b610edb3334611923565b565b83421115610f4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8716610fce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332305065726d69743a206f776e6572207a65726f206164647265737300604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8088166000818152606b602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e090940190528251920191909120907f00000000000000000000000000000000000000000000000000000000000000006110876113e4565b83604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611121573d6000803e3d6000fd5b5050506020604051035190508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8b166000908152606b602052604090206001850190556111fd8b8b8b6114da565b5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260666020908152604080832093909416825291909152205490565b61124a61191f565b73ffffffffffffffffffffffffffffffffffffffff16611268610cf7565b73ffffffffffffffffffffffffffffffffffffffff16146112ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611356576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120f46026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6068600001604051808280546001816001161561010002031660029004801561146b5780601f1061144957610100808354040283529182019161146b565b820191906000526020600020905b815481529060010190602001808311611457575b505060408051918290038220602080840196909652828201527f0000000000000000000000000000000000000000000000000000000000000000606083015260808201959095523060a0808301919091528551808303909101815260c090910190945250508151910120905090565b73ffffffffffffffffffffffffffffffffffffffff8316611546576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121fe6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166115b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061211a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661168d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806121d96025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120af6023913960400191505060405180910390fd5b611704838383611ccb565b61174e8160405180606001604052806026815260200161213c6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526065602052604090205491906117f3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260656020526040808220939093559084168152205461178a90826118a4565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561189c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611861578181015183820152602001611849565b50505050905090810190601f16801561188e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561191857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff82166119a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119b160008383611ccb565b6067546119be90826118a4565b60675573ffffffffffffffffffffffffffffffffffffffff82166000908152606560205260409020546119f190826118a4565b73ffffffffffffffffffffffffffffffffffffffff831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526065602052604090205490565b6000611a8930611cd0565b15905090565b600054610100900460ff1680611aa85750611aa8611a7e565b80611ab6575060005460ff16155b611b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015611b7157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b611b79611cd6565b610cc5611de8565b73ffffffffffffffffffffffffffffffffffffffff8216611bed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121b86021913960400191505060405180910390fd5b611bf982600083611ccb565b611c43816040518060600160405280602281526020016120d26022913973ffffffffffffffffffffffffffffffffffffffff851660009081526065602052604090205491906117f3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260656020526040902055606754611c769082611f78565b60675560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b505050565b3b151590565b600054610100900460ff1680611cef5750611cef611a7e565b80611cfd575060005460ff16155b611d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015610cc557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790558015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600054610100900460ff1680611e015750611e01611a7e565b80611e0f575060005460ff16155b611e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612162602e913960400191505060405180910390fd5b600054610100900460ff16158015611eca57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6000611ed461191f565b603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610cf457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905550565b600082821115611fe957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826120255760008555612089565b82601f1061205c578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612089565b82800160010185558215612089579182015b8281111561208957823582559160200191906001019061206e565b50612095929150612099565b5090565b5b80821115612095576000815560010161209a56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220819905fea84f7057688fd8f8caf7cd325645123b89c7d2fa91d422e7461e46d164736f6c63430007060033"; export class MockWeth__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/PingPongRouter__factory.ts b/typescript/typechain/optics-xapps/factories/PingPongRouter__factory.ts index cecccb556..8d09ffcdd 100644 --- a/typescript/typechain/optics-xapps/factories/PingPongRouter__factory.ts +++ b/typescript/typechain/optics-xapps/factories/PingPongRouter__factory.ts @@ -218,7 +218,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162001a4338038062001a43833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b6200090c1760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61165980620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146101ce5780638da5cb5b146101d6578063b49c53a7146101de578063f2fde38b1461020757610088565b8063025ed0691461008d5780633339df96146100b257806341bdc8b5146100e357806356d5d47514610116575b600080fd5b6100b0600480360360208110156100a357600080fd5b503563ffffffff1661023a565b005b6100ba61028a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b0600480360360208110156100f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a6565b6100b06004803603606081101561012c57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561015957600080fd5b82018360208201111561016b57600080fd5b8035906020019184600183028401116401000000008311171561018d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610395945050505050565b6100b0610576565b6100ba61068d565b6100b0600480360360408110156101f457600080fd5b5063ffffffff81351690602001356106a9565b6100b06004803603602081101561021d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661076a565b60c980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008116600163ffffffff928316818101909316919091179092556102858383836000610916565b505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b6102ae610a7f565b73ffffffffffffffffffffffffffffffffffffffff166102cc61068d565b73ffffffffffffffffffffffffffffffffffffffff161461034e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61039e33610a83565b61040957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826104158282610b2c565b61048057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061048c8482610b4b565b90506104b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610b6f565b156104cd576104c88682610b8f565b61056e565b6104f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610b9c565b15610507576104c88682610ba5565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b61057e610a7f565b73ffffffffffffffffffffffffffffffffffffffff1661059c61068d565b73ffffffffffffffffffffffffffffffffffffffff161461061e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6106b1610a7f565b73ffffffffffffffffffffffffffffffffffffffff166106cf61068d565b73ffffffffffffffffffffffffffffffffffffffff161461075157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b610772610a7f565b73ffffffffffffffffffffffffffffffffffffffff1661079061068d565b73ffffffffffffffffffffffffffffffffffffffff161461081257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061156e6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b600061092185610bb2565b9050600084610939576109348484610c34565b610943565b6109438484610c7f565b905061094d610c88565b73ffffffffffffffffffffffffffffffffffffffff1663d34686398784846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109c95781810151838201526020016109b1565b50505050905090810190601f1680156109f65780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b5050604080518681528815156020820152815163ffffffff808a1695508b1693507fc33c46696831ce09e40c8eb57b62d0d0cd48c408d38fa19f9a8ba3138415db10929181900390910190a3505050505050565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610afa57600080fd5b505afa158015610b0e573d6000803e3d6000fd5b505050506040513d6020811015610b2457600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610b6664ffffffffff85168284610d24565b95945050505050565b600060015b610b7d83610d85565b6002811115610b8857fe5b1492915050565b6001610285838284610dc0565b60006002610b74565b6000610285838284610dc0565b63ffffffff81166000908152609760205260409020548061091157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b606060025b8383604051602001808460ff1660f81b81526001018363ffffffff1660e01b81526004018281526020019350505050604051602081830303815290604052905092915050565b60606001610c39565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051905090565b600080610d318484610e7c565b9050604051811115610d41575060005b80610d6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d7e565b610d7a858585610eee565b9150505b9392505050565b6000610db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610f01565b60ff166002811115610b4557fe5b6000610ded7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610f07565b90506000610e1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416610f38565b604080518481528615156020820152815192935063ffffffff80851693908916927faa15aa1b86193c9d924f48e0c48b3cba78f17e281109c7de2f865c5a1c3d7009928290030190a3610e758585158385600101610916565b5050505050565b81810182811015610b4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b6000610b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660016020610f65565b6000610b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160045b60008160200360080260ff16610f7c858585610f86565b901c949350505050565b600060ff8216610f9857506000610d7e565b610fa184611131565b6bffffffffffffffffffffffff16610fbc8460ff8516610e7c565b111561109b57610ffd610fce85611145565b6bffffffffffffffffffffffff16610fe586611131565b6bffffffffffffffffffffffff16858560ff16611159565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611060578181015183820152602001611048565b50505050905090810190601f16801561108d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156110f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806115b5603a913960400191505060405180910390fd5b60088202600061110786611145565b6bffffffffffffffffffffffff1690506000611122836112b4565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b60606000611166866112fd565b9150506000611174866112fd565b9150506000611182866112fd565b9150506000611190866112fd565b9150508383838360405160200180806115ef603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161159482397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff1611156113655760ff600882021684901c611322816113d1565b61ffff16841793508160ff1660101461133d57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611303565b50600f5b60ff8160ff1610156113cb5760ff600882021684901c611388816113d1565b61ffff16831792508160ff166000146113a357601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611369565b50915091565b60006113e360048360ff16901c611401565b60ff161760081b62ffff00166113f882611401565b60ff1617919050565b600060f08083179060ff8216141561141d576030915050610911565b8060ff1660f11415611433576031915050610911565b8060ff1660f21415611449576032915050610911565b8060ff1660f3141561145f576033915050610911565b8060ff1660f41415611475576034915050610911565b8060ff1660f5141561148b576035915050610911565b8060ff1660f614156114a1576036915050610911565b8060ff1660f714156114b7576037915050610911565b8060ff1660f814156114cd576038915050610911565b8060ff1660f914156114e3576039915050610911565b8060ff1660fa14156114f9576061915050610911565b8060ff1660fb141561150f576062915050610911565b8060ff1660fc1415611525576063915050610911565b8060ff1660fd141561153b576064915050610911565b8060ff1660fe1415611551576065915050610911565b8060ff1660ff1415611567576066915050610911565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573732e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212203636f0b2396e5558bb1585611e3a248a6759864c9e941315c9858917a5a7248664736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + "0x60806040523480156200001157600080fd5b5060405162001a4338038062001a43833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b6200090c1760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e81526020018062001a15602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61165980620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146101ce5780638da5cb5b146101d6578063b49c53a7146101de578063f2fde38b1461020757610088565b8063025ed0691461008d5780633339df96146100b257806341bdc8b5146100e357806356d5d47514610116575b600080fd5b6100b0600480360360208110156100a357600080fd5b503563ffffffff1661023a565b005b6100ba61028a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b0600480360360208110156100f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166102a6565b6100b06004803603606081101561012c57600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561015957600080fd5b82018360208201111561016b57600080fd5b8035906020019184600183028401116401000000008311171561018d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610395945050505050565b6100b0610576565b6100ba61068d565b6100b0600480360360408110156101f457600080fd5b5063ffffffff81351690602001356106a9565b6100b06004803603602081101561021d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661076a565b60c980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008116600163ffffffff928316818101909316919091179092556102858383836000610916565b505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b6102ae610a7f565b73ffffffffffffffffffffffffffffffffffffffff166102cc61068d565b73ffffffffffffffffffffffffffffffffffffffff161461034e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61039e33610a83565b61040957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826104158282610b2c565b61048057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061048c8482610b4b565b90506104b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610b6f565b156104cd576104c88682610b8f565b61056e565b6104f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610b9c565b15610507576104c88682610ba5565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b61057e610a7f565b73ffffffffffffffffffffffffffffffffffffffff1661059c61068d565b73ffffffffffffffffffffffffffffffffffffffff161461061e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b6106b1610a7f565b73ffffffffffffffffffffffffffffffffffffffff166106cf61068d565b73ffffffffffffffffffffffffffffffffffffffff161461075157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b610772610a7f565b73ffffffffffffffffffffffffffffffffffffffff1661079061068d565b73ffffffffffffffffffffffffffffffffffffffff161461081257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061156e6026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b600061092185610bb2565b9050600084610939576109348484610c34565b610943565b6109438484610c7f565b905061094d610c88565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018784846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109c95781810151838201526020016109b1565b50505050905090810190601f1680156109f65780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b5050604080518681528815156020820152815163ffffffff808a1695508b1693507fc33c46696831ce09e40c8eb57b62d0d0cd48c408d38fa19f9a8ba3138415db10929181900390910190a3505050505050565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610afa57600080fd5b505afa158015610b0e573d6000803e3d6000fd5b505050506040513d6020811015610b2457600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610b6664ffffffffff85168284610d24565b95945050505050565b600060015b610b7d83610d85565b6002811115610b8857fe5b1492915050565b6001610285838284610dc0565b60006002610b74565b6000610285838284610dc0565b63ffffffff81166000908152609760205260409020548061091157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b606060025b8383604051602001808460ff1660f81b81526001018363ffffffff1660e01b81526004018281526020019350505050604051602081830303815290604052905092915050565b60606001610c39565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051905090565b600080610d318484610e7c565b9050604051811115610d41575060005b80610d6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610d7e565b610d7a858585610eee565b9150505b9392505050565b6000610db27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610f01565b60ff166002811115610b4557fe5b6000610ded7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610f07565b90506000610e1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416610f38565b604080518481528615156020820152815192935063ffffffff80851693908916927faa15aa1b86193c9d924f48e0c48b3cba78f17e281109c7de2f865c5a1c3d7009928290030190a3610e758585158385600101610916565b5050505050565b81810182811015610b4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b6000610b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660016020610f65565b6000610b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600160045b60008160200360080260ff16610f7c858585610f86565b901c949350505050565b600060ff8216610f9857506000610d7e565b610fa184611131565b6bffffffffffffffffffffffff16610fbc8460ff8516610e7c565b111561109b57610ffd610fce85611145565b6bffffffffffffffffffffffff16610fe586611131565b6bffffffffffffffffffffffff16858560ff16611159565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611060578181015183820152602001611048565b50505050905090810190601f16801561108d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff1611156110f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806115b5603a913960400191505060405180910390fd5b60088202600061110786611145565b6bffffffffffffffffffffffff1690506000611122836112b4565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b60606000611166866112fd565b9150506000611174866112fd565b9150506000611182866112fd565b9150506000611190866112fd565b9150508383838360405160200180806115ef603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161159482397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff1611156113655760ff600882021684901c611322816113d1565b61ffff16841793508160ff1660101461133d57601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611303565b50600f5b60ff8160ff1610156113cb5760ff600882021684901c611388816113d1565b61ffff16831792508160ff166000146113a357601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611369565b50915091565b60006113e360048360ff16901c611401565b60ff161760081b62ffff00166113f882611401565b60ff1617919050565b600060f08083179060ff8216141561141d576030915050610911565b8060ff1660f11415611433576031915050610911565b8060ff1660f21415611449576032915050610911565b8060ff1660f3141561145f576033915050610911565b8060ff1660f41415611475576034915050610911565b8060ff1660f5141561148b576035915050610911565b8060ff1660f614156114a1576036915050610911565b8060ff1660f714156114b7576037915050610911565b8060ff1660f814156114cd576038915050610911565b8060ff1660f914156114e3576039915050610911565b8060ff1660fa14156114f9576061915050610911565b8060ff1660fb141561150f576062915050610911565b8060ff1660fc1415611525576063915050610911565b8060ff1660fd141561153b576064915050610911565b8060ff1660fe1415611551576065915050610911565b8060ff1660ff1415611567576066915050610911565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573732e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220865c10f9ecf0d9f387c19d32d0fc9f850fc854ae0cb740b9196d111a34ab656264736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; export class PingPongRouter__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/Replica__factory.ts b/typescript/typechain/optics-xapps/factories/Replica__factory.ts index aef46f036..1c0590273 100644 --- a/typescript/typechain/optics-xapps/factories/Replica__factory.ts +++ b/typescript/typechain/optics-xapps/factories/Replica__factory.ts @@ -68,7 +68,7 @@ const _abi = [ { indexed: true, internalType: "uint32", - name: "sequence", + name: "nonce", type: "uint32", }, { @@ -189,6 +189,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "committedRoot", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "confirm", @@ -215,19 +228,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [], - name: "current", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -283,7 +283,7 @@ const _abi = [ }, { internalType: "bytes32", - name: "_current", + name: "_committedRoot", type: "bytes32", }, { @@ -541,7 +541,7 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b506040516131e23803806131e28339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661317961006960003980610ce85280610d7e52506131796000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c8063928bc4b2116100e3578063ba739a621161008c578063df034cd011610066578063df034cd0146105e9578063e7e7a7b71461061a578063f6d161021461066557610198565b8063ba739a62146105b8578063c19d93fb146105d9578063d88beda2146105e157610198565b8063a3f81d68116100bd578063a3f81d68146104e1578063ab91c7b0146104fe578063b31c01fb1461050657610198565b8063928bc4b21461042b578063961681dc146104d15780639fa6a6e3146104d957610198565b806339992668116101455780637022b58e1161011f5780637022b58e146103e557806371bfb7b8146103ed5780638d3638f41461040a57610198565b8063399926681461032757806345630b1a1461032f5780636188af0e1461033757610198565b80632bbd59ca116101765780632bbd59ca146102a25780632bef2892146102e0578063371d3071146102fd57610198565b806314cfabb31461019d57806319d9d21a146101b957806325e3beda14610288575b600080fd5b6101a561066d565b604080519115158252519081900360200190f35b610286600480360360a08110156101cf57600080fd5b81359160208101918101906080810160608201356401000000008111156101f557600080fd5b82018360208201111561020757600080fd5b8035906020019184600183028401116401000000008311171561022957600080fd5b91939092909160208101903564010000000081111561024757600080fd5b82018360208201111561025957600080fd5b8035906020019184600183028401116401000000008311171561027b57600080fd5b509092509050610699565b005b6102906108f6565b60408051918252519081900360200190f35b6102bf600480360360208110156102b857600080fd5b50356108fc565b604051808260028111156102cf57fe5b815260200191505060405180910390f35b6101a5600480360360208110156102f657600080fd5b5035610911565b6101a5600480360361044081101561031457600080fd5b5080359060208101906104200135610926565b610290610a46565b610290610a4c565b610286600480360361044081101561034e57600080fd5b81019060208101813564010000000081111561036957600080fd5b82018360208201111561037b57600080fd5b8035906020019184600183028401116401000000008311171561039d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a61565b610286610aed565b6102906004803603602081101561040357600080fd5b5035610cd4565b610412610ce6565b6040805163ffffffff9092168252519081900360200190f35b6101a56004803603602081101561044157600080fd5b81019060208101813564010000000081111561045c57600080fd5b82018360208201111561046e57600080fd5b8035906020019184600183028401116401000000008311171561049057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d0a945050505050565b6104126113c2565b6102906113ce565b6101a5600480360360208110156104f757600080fd5b50356113d4565b6102906113fb565b6102866004803603606081101561051c57600080fd5b81359160208101359181019060608101604082013564010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611407945050505050565b6105c06116eb565b6040805192835260208301919091528051918290030190f35b6102bf611739565b61029061175a565b6105f1611761565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102866004803603608081101561063057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff602082013516906040810135906060013561177d565b610290611916565b60006106796001611922565b15801590610694575061069461068f6001611962565b6113d4565b905090565b600260345474010000000000000000000000000000000000000000900460ff1660028111156106c457fe5b141561073157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f86018190048102820181019092528481526107739188918835918890889081908401838280828437600092019190915250611a0392505050565b80156107c257506107c286866001602002013584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0392505050565b80156107d357508435602086013514155b156108ee576107e0611a95565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b600061091e600183611a9f565b90505b919050565b60008060008581526069602052604090205460ff16600281111561094657fe5b146109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109e8858560208060200260405190810160405280929190826020800280828437600092019190915250879150611b1b9050565b90506109f3816113d4565b15610a39575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a3f565b60009150505b9392505050565b60665481565b6065546000906106949063ffffffff16611bc6565b610a7383805190602001208383610926565b610ade57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae783610d0a565b50505050565b600260345474010000000000000000000000000000000000000000900460ff166002811115610b1857fe5b1415610b8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b8f6001611922565b610bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610c076001611922565b90505b600081118015610c225750610c2261068f6001611962565b15610c5a57610c316001611c3b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610c0a565b81610cc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cce611a9d565b50603555565b60676020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610d178382611d74565b90506000610d467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611d98565b90506000610d757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611dd7565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610dc97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e08565b63ffffffff1614610e3b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b600160008381526069602052604090205460ff166002811115610e5a57fe5b14610ec657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60685460ff16600114610f3a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600083815260696020526040902080549091166002179055620d32e85a1015610ff157604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061101e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008516611e39565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf8506110687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611e4c565b6110937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008916611e7c565b6110e86110c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008b16611ead565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611f1e565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561113a578181015183820152602001611122565b50505050905090810190601f1680156111675780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b6020831061122f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111f2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611292576040519150601f19603f3d011682016040523d82523d6000602084013e611297565b606091505b50909650905085156112d35760405184907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a261138c565b8173ffffffffffffffffffffffffffffffffffffffff168363ffffffff16857fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611351578181015183820152602001611339565b50505050905090810190601f16801561137e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550919392505050565b60655463ffffffff1681565b60355481565b600081815260676020526040812054806113f2576000915050610921565b42101592915050565b60006106946001611922565b600260345474010000000000000000000000000000000000000000900460ff16600281111561143257fe5b141561149f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006114ab6001611922565b111561152d576114bb6001611f62565b831461152857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b61159d565b826035541461159d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6115a8838383611a03565b61161357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b61161b611a9d565b606654600083815260676020526040902042909101905561163d600183611f9f565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b838110156116ac578181015183820152602001611694565b50505050905090810190601f1680156116d95780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000806116f86001611922565b15611720576117076001611962565b6000818152606760205260409020549092509050611735565b50506035546000818152606760205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff1680611796575061179661200c565b806117a4575060005460ff16155b6117f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff1615801561185f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6118688461201d565b6068805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905560358490556000848152606760205260409020556066829055801561190f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006106946001611f62565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661195a82826121b3565b949350505050565b600061196d826121cd565b156119d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611a0e610a4c565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611a4f816121fc565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611a75828561224d565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611a9d6122e7565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611b0f576000818152600185016020526040902054831415611b07576001915050611b15565b600101611ab7565b50600090505b92915050565b8260005b6020811015611bbe57600183821c166000858360208110611b3c57fe5b602002015190508160011415611b825780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611bb4565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611b1f565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c7382826121b3565b611cde57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d2f576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b815160009060208401611d8f64ffffffffff85168284612328565b95945050505050565b600080611da48361237e565b6bffffffffffffffffffffffff1690506000611dbf84612392565b6bffffffffffffffffffffffff169091209392505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602460046123a6565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602860046123a6565b600061091e611e47836123c7565b6123f8565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260046123a6565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123fb565b600061091e604c80611ee07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612392565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff919091160360006125a6565b6060600080611f2c84612392565b6bffffffffffffffffffffffff1690506040519150819250611f51848360200161262c565b508181016020016040529052919050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611b15576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061201730612758565b15905090565b600054610100900460ff1680612036575061203661200c565b80612044575060005460ff16155b612099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff161580156120ff57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61210761275e565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156121af57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122dd8682858561287c565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b6000806123358484612a6a565b9050604051811115612345575060005b80612373577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a3f565b611d8f858585612adc565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b60008160200360080260ff166123bd8585856123fb565b901c949350505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123fb565b90565b600060ff821661240d57506000610a3f565b61241684612392565b6bffffffffffffffffffffffff166124318460ff8516612a6a565b1115612510576124726124438561237e565b6bffffffffffffffffffffffff1661245a86612392565b6bffffffffffffffffffffffff16858560ff16612aef565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124d55781810151838201526020016124bd565b50505050905090810190601f1680156125025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff16111561256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613082603a913960400191505060405180910390fd5b60088202600061257c8661237e565b6bffffffffffffffffffffffff169050600061259783612c4a565b91909501511695945050505050565b6000806125b28661237e565b6bffffffffffffffffffffffff1690506125cb86612c93565b6125df856125d98489612a6a565b90612a6a565b111561260e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000091505061195a565b6126188186612a6a565b90506122dd8364ffffffffff168286612328565b600061263783612cbd565b61268c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130bc6028913960400191505060405180910390fd5b61269583612ccf565b6126ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806130e4602b913960400191505060405180910390fd5b60006126f584612392565b6bffffffffffffffffffffffff16905060006127108561237e565b6bffffffffffffffffffffffff16905060006040519050848111156127355760206060fd5b8285848460045afa506122dd61274a87612d0c565b64ffffffffff168685612adc565b3b151590565b600054610100900460ff1680612777575061277761200c565b80612785575060005460ff16155b6127da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613032602e913960400191505060405180910390fd5b600054610100900460ff1615801561284057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61284a6001612d12565b801561287957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156128f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fef6022913960400191505060405180910390fd5b8360ff16601b148061290c57508360ff16601c145b612961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130606022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156129bd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611d8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611b1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612afc86612d56565b9150506000612b0a86612d56565b9150506000612b1886612d56565b9150506000612b2686612d56565b91505083838383604051602001808061310f603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161301182397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612c9e82612392565b612ca78361237e565b016bffffffffffffffffffffffff169050919050565b6000612cc882612e2a565b1592915050565b6000612cda82612d0c565b64ffffffffff1664ffffffffff1415612cf557506000610921565b6000612d0083612c93565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff166128795780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff161115612dbe5760ff600882021684901c612d7b81612e52565b61ffff16841793508160ff16601014612d9657601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612d5c565b50600f5b60ff8160ff161015612e245760ff600882021684901c612de181612e52565b61ffff16831792508160ff16600014612dfc57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612dc2565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612e6460048360ff16901c612e82565b60ff161760081b62ffff0016612e7982612e82565b60ff1617919050565b600060f08083179060ff82161415612e9e576030915050610921565b8060ff1660f11415612eb4576031915050610921565b8060ff1660f21415612eca576032915050610921565b8060ff1660f31415612ee0576033915050610921565b8060ff1660f41415612ef6576034915050610921565b8060ff1660f51415612f0c576035915050610921565b8060ff1660f61415612f22576036915050610921565b8060ff1660f71415612f38576037915050610921565b8060ff1660f81415612f4e576038915050610921565b8060ff1660f91415612f64576039915050610921565b8060ff1660fa1415612f7a576061915050610921565b8060ff1660fb1415612f90576062915050610921565b8060ff1660fc1415612fa6576063915050610921565b8060ff1660fd1415612fbc576064915050610921565b8060ff1660fe1415612fd2576065915050610921565b8060ff1660ff1415612fe8576066915050610921565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212208dc5bb66b6528a395ce5a6133e947a49d336f4a3a4f5ba994087020789c8edc364736f6c63430007060033"; + "0x60a060405234801561001057600080fd5b506040516131dc3803806131dc8339818101604052602081101561003357600080fd5b505160e081901b6001600160e01b03191660805263ffffffff1661317361006960003980610cee5280610d2652506131736000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638d3638f4116100e3578063ba739a621161008c578063df034cd011610066578063df034cd0146105e9578063e7e7a7b71461061a578063f6d161021461066557610198565b8063ba739a62146105b8578063c19d93fb146105d9578063d88beda2146105e157610198565b8063a3f81d68116100bd578063a3f81d68146104e1578063ab91c7b0146104fe578063b31c01fb1461050657610198565b80638d3638f414610412578063928bc4b214610433578063961681dc146104d957610198565b8063399926681161014557806367a6771d1161011f57806367a6771d146103e55780637022b58e146103ed57806371bfb7b8146103f557610198565b8063399926681461032757806345630b1a1461032f5780636188af0e1461033757610198565b80632bbd59ca116101765780632bbd59ca146102a25780632bef2892146102e0578063371d3071146102fd57610198565b806314cfabb31461019d57806319d9d21a146101b957806325e3beda14610288575b600080fd5b6101a561066d565b604080519115158252519081900360200190f35b610286600480360360a08110156101cf57600080fd5b81359160208101918101906080810160608201356401000000008111156101f557600080fd5b82018360208201111561020757600080fd5b8035906020019184600183028401116401000000008311171561022957600080fd5b91939092909160208101903564010000000081111561024757600080fd5b82018360208201111561025957600080fd5b8035906020019184600183028401116401000000008311171561027b57600080fd5b509092509050610699565b005b6102906108f6565b60408051918252519081900360200190f35b6102bf600480360360208110156102b857600080fd5b50356108fc565b604051808260028111156102cf57fe5b815260200191505060405180910390f35b6101a5600480360360208110156102f657600080fd5b5035610911565b6101a5600480360361044081101561031457600080fd5b5080359060208101906104200135610926565b610290610a46565b610290610a4c565b610286600480360361044081101561034e57600080fd5b81019060208101813564010000000081111561036957600080fd5b82018360208201111561037b57600080fd5b8035906020019184600183028401116401000000008311171561039d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955092935050506104008201359050610a61565b610290610aed565b610286610af3565b6102906004803603602081101561040b57600080fd5b5035610cda565b61041a610cec565b6040805163ffffffff9092168252519081900360200190f35b6101a56004803603602081101561044957600080fd5b81019060208101813564010000000081111561046457600080fd5b82018360208201111561047657600080fd5b8035906020019184600183028401116401000000008311171561049857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d10945050505050565b61041a6113c2565b6101a5600480360360208110156104f757600080fd5b50356113ce565b6102906113f5565b6102866004803603606081101561051c57600080fd5b81359160208101359181019060608101604082013564010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611401945050505050565b6105c06116e5565b6040805192835260208301919091528051918290030190f35b6102bf611733565b610290611754565b6105f161175b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102866004803603608081101561063057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff6020820135169060408101359060600135611777565b610290611910565b6000610679600161191c565b15801590610694575061069461068f600161195c565b6113ce565b905090565b600260345474010000000000000000000000000000000000000000900460ff1660028111156106c457fe5b141561073157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516020601f860181900481028201810190925284815261077391889188359188908890819084018382808284376000920191909152506119fd92505050565b80156107c257506107c286866001602002013584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119fd92505050565b80156107d357508435602086013514155b156108ee576107e0611a8f565b7f2c3f60bab4170347826231b75a920b5053941ddebc6eed6fd2c25721648b186f8686868686866040518087815260200186600260200280828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910182810360409081018252810186905290506020810160608201878780828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039a509098505050505050505050a15b505050505050565b613a9881565b60696020526000908152604090205460ff1681565b600061091e600183611a99565b90505b919050565b60008060008581526069602052604090205460ff16600281111561094657fe5b146109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f214d6573736167655374617475732e4e6f6e6500000000000000000000000000604482015290519081900360640190fd5b60006109e8858560208060200260405190810160405280929190826020800280828437600092019190915250879150611b159050565b90506109f3816113ce565b15610a39575050600083815260696020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155610a3f565b60009150505b9392505050565b60665481565b6065546000906106949063ffffffff16611bc0565b610a7383805190602001208383610926565b610ade57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2170726f76650000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ae783610d10565b50505050565b60355481565b600260345474010000000000000000000000000000000000000000900460ff166002811115610b1e57fe5b1415610b8b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b610b95600161191c565b610c0057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2170656e64696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080610c0d600161191c565b90505b600081118015610c285750610c2861068f600161195c565b15610c6057610c376001611c35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01610c10565b81610ccc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f2174696d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610cd4611a97565b50603555565b60686020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610d1d8382611d6e565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016610d717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611d92565b63ffffffff1614610de357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316611dc3565b9050600160008281526069602052604090205460ff166002811115610e3157fe5b14610e9d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2170726f76656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60675460ff16600114610f1157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217265656e7472616e7400000000000000000000000000000000000000000000604482015290519081900360640190fd5b606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00908116909155600082815260696020526040902080549091166002179055620d32e85a1015610fc857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f2167617300000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610ff57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416611e02565b9050606073ffffffffffffffffffffffffffffffffffffffff8216620cf85061103f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716611e15565b61106a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816611e45565b6110bf6110987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008a16611e76565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000016611ee7565b604051602401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111115781810151838201526020016110f9565b50505050905090810190601f16801561113e5780820380516001836020036101000a031916815260200191505b50604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f56d5d47500000000000000000000000000000000000000000000000000000000178152905182519297509550859450925090508083835b6020831061120657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111c9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114611269576040519150601f19603f3d011682016040523d82523d6000602084013e61126e565b606091505b50909550905084156112aa5760405183907fdc8a2c27342659cbe87c6c49e4515c64faa8c97ba6a2f260cbf33d84d7bd832090600090a261138d565b73ffffffffffffffffffffffffffffffffffffffff82166112ec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616611f2b565b63ffffffff16847fdffcee52db78cb2d1f525b8d7edd630ea062884e733aa26c201d7ce1843eccab846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561135257818101518382015260200161133a565b50505050905090810190601f16801561137f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a45b5050606780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509092915050565b60655463ffffffff1681565b600081815260686020526040812054806113ec576000915050610921565b42101592915050565b6000610694600161191c565b600260345474010000000000000000000000000000000000000000900460ff16600281111561142c57fe5b141561149957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6661696c65642073746174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006114a5600161191c565b1115611527576114b56001611f5c565b831461152257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e6f7420656e64206f6620717565756500000000000000000000000000000000604482015290519081900360640190fd5b611597565b603554831461159757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f742063757272656e74207570646174650000000000000000000000000000604482015290519081900360640190fd5b6115a28383836119fd565b61160d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2175706461746572207369670000000000000000000000000000000000000000604482015290519081900360640190fd5b611615611a97565b6066546000838152606860205260409020429091019055611637600183611f99565b5060655460408051602080825284518183015284518694889463ffffffff909116937f608828ad904a0c9250c09004ba7226efb08f35a5c815bb3f76b5a8a271cd08b2938893919283929083019185019080838360005b838110156116a657818101518382015260200161168e565b50505050905090810190601f1680156116d35780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b6000806116f2600161191c565b1561171a57611701600161195c565b600081815260686020526040902054909250905061172f565b50506035546000818152606860205260409020545b9091565b60345474010000000000000000000000000000000000000000900460ff1681565b620cf85081565b60345473ffffffffffffffffffffffffffffffffffffffff1681565b600054610100900460ff16806117905750611790612006565b8061179e575060005460ff16155b6117f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff1615801561185957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b61186284612017565b6067805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155606580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff881617905560358490556000848152606860205260409020556066829055801561190957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050505050565b60006106946001611f5c565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661195482826121ad565b949350505050565b6000611967826121c7565b156119d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5080546fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b600080611a08610a4c565b8585604051602001808481526020018381526020018281526020019350505050604051602081830303815290604052805190602001209050611a49816121f6565b60345490915073ffffffffffffffffffffffffffffffffffffffff16611a6f8285612247565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b611a976122e1565b565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff168111611b09576000818152600185016020526040902054831415611b01576001915050611b0f565b600101611ab1565b50600090505b92915050565b8260005b6020811015611bb857600183821c166000858360208110611b3657fe5b602002015190508160011415611b7c5780846040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209350611bae565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101611b19565b509392505050565b6040805160e09290921b7fffffffff00000000000000000000000000000000000000000000000000000000166020808401919091527f4f5054494353000000000000000000000000000000000000000000000000000060248401528151808403600a018152602a909301909152815191012090565b80546000906fffffffffffffffffffffffffffffffff700100000000000000000000000000000000820481169116611c6d82826121ad565b611cd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f456d707479000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6fffffffffffffffffffffffffffffffff8116600090815260018501602052604090205492508215611d29576fffffffffffffffffffffffffffffffff811660009081526001850160205260408120555b83547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001919091016fffffffffffffffffffffffffffffffff1617909255919050565b815160009060208401611d8964ffffffffff85168284612322565b95945050505050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660286004612378565b600080611dcf83612399565b6bffffffffffffffffffffffff1690506000611dea846123ad565b6bffffffffffffffffffffffff169091209392505050565b600061091e611e10836123c1565b6123f2565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316826004612378565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316600460206123f5565b600061091e604c80611ea97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000086166123ad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000861692916bffffffffffffffffffffffff919091160360006125a0565b6060600080611ef5846123ad565b6bffffffffffffffffffffffff1690506040519150819250611f1a8483602001612626565b508181016020016040529052919050565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246004612378565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b81546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009283900482166001019182169092029190911783558115611b0f576fffffffffffffffffffffffffffffffff8116600090815260019390930160205260409092205590565b600061201130612752565b15905090565b600054610100900460ff16806120305750612030612006565b8061203e575060005460ff16155b612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff161580156120f957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b612101612758565b603480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416177fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156121a957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b60019103016fffffffffffffffffffffffffffffffff1690565b546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204161090565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146122b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6122d786828585612876565b9695505050505050565b603480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674020000000000000000000000000000000000000000179055565b60008061232f8484612a64565b905060405181111561233f575060005b8061236d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610a3f565b611d89858585612ad6565b60008160200360080260ff1661238f8585856123f5565b901c949350505050565b60781c6bffffffffffffffffffffffff1690565b60181c6bffffffffffffffffffffffff1690565b600061091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316602c60206123f5565b90565b600060ff821661240757506000610a3f565b612410846123ad565b6bffffffffffffffffffffffff1661242b8460ff8516612a64565b111561250a5761246c61243d85612399565b6bffffffffffffffffffffffff16612454866123ad565b6bffffffffffffffffffffffff16858560ff16612ae9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124cf5781810151838201526020016124b7565b50505050905090810190601f1680156124fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061307c603a913960400191505060405180910390fd5b60088202600061257686612399565b6bffffffffffffffffffffffff169050600061259183612c44565b91909501511695945050505050565b6000806125ac86612399565b6bffffffffffffffffffffffff1690506125c586612c8d565b6125d9856125d38489612a64565b90612a64565b1115612608577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611954565b6126128186612a64565b90506122d78364ffffffffff168286612322565b600061263183612cb7565b612686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b66028913960400191505060405180910390fd5b61268f83612cc9565b6126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806130de602b913960400191505060405180910390fd5b60006126ef846123ad565b6bffffffffffffffffffffffff169050600061270a85612399565b6bffffffffffffffffffffffff169050600060405190508481111561272f5760206060fd5b8285848460045afa506122d761274487612d06565b64ffffffffff168685612ad6565b3b151590565b600054610100900460ff16806127715750612771612006565b8061277f575060005460ff16155b6127d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061302c602e913960400191505060405180910390fd5b600054610100900460ff1615801561283a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b6128446001612d0c565b801561287357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156128f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fe96022913960400191505060405180910390fd5b8360ff16601b148061290657508360ff16601c145b61295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061305a6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156129b7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611d8957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b81810182811015611b0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60606000612af686612d50565b9150506000612b0486612d50565b9150506000612b1286612d50565b9150506000612b2086612d50565b915050838383836040516020018080613109603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161300b82397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b6000612c98826123ad565b612ca183612399565b016bffffffffffffffffffffffff169050919050565b6000612cc282612e24565b1592915050565b6000612cd482612d06565b64ffffffffff1664ffffffffff1415612cef57506000610921565b6000612cfa83612c8d565b60405110199392505050565b60d81c90565b80546fffffffffffffffffffffffffffffffff166128735780547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016600117815550565b600080601f5b600f8160ff161115612db85760ff600882021684901c612d7581612e4c565b61ffff16841793508160ff16601014612d9057601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612d56565b50600f5b60ff8160ff161015612e1e5760ff600882021684901c612ddb81612e4c565b61ffff16831792508160ff16600014612df657601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612dbc565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009081161490565b6000612e5e60048360ff16901c612e7c565b60ff161760081b62ffff0016612e7382612e7c565b60ff1617919050565b600060f08083179060ff82161415612e98576030915050610921565b8060ff1660f11415612eae576031915050610921565b8060ff1660f21415612ec4576032915050610921565b8060ff1660f31415612eda576033915050610921565b8060ff1660f41415612ef0576034915050610921565b8060ff1660f51415612f06576035915050610921565b8060ff1660f61415612f1c576036915050610921565b8060ff1660f71415612f32576037915050610921565b8060ff1660f81415612f48576038915050610921565b8060ff1660f91415612f5e576039915050610921565b8060ff1660fa1415612f74576061915050610921565b8060ff1660fb1415612f8a576062915050610921565b8060ff1660fc1415612fa0576063915050610921565b8060ff1660fd1415612fb6576064915050610921565b8060ff1660fe1415612fcc576065915050610921565b8060ff1660ff1415612fe2576066915050610921565b5091905056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c75652e20417474656d7074656420746f20696e646578206174206f6666736574203078496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756554797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f636f7079546f202d204e756c6c20706f696e74657220646572656654797065644d656d566965772f636f7079546f202d20496e76616c696420706f696e74657220646572656654797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220925150f4a4d1dd293bc5d1f262d1c60318e117848c9c10331e11474b991f600364736f6c63430007060033"; export class Replica__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/RouterTemplate__factory.ts b/typescript/typechain/optics-xapps/factories/RouterTemplate__factory.ts index e2c2890f6..1bea1d9e5 100644 --- a/typescript/typechain/optics-xapps/factories/RouterTemplate__factory.ts +++ b/typescript/typechain/optics-xapps/factories/RouterTemplate__factory.ts @@ -174,7 +174,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b506040516200191638038062001916833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b620009911760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61152c80620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146101d45780638da5cb5b146101dc578063b49c53a7146101e4578063f2fde38b1461020d57610088565b80631984a3301461008d5780633339df96146100b857806341bdc8b5146100e957806356d5d4751461011c575b600080fd5b6100b6600480360360408110156100a357600080fd5b5063ffffffff8135169060200135610240565b005b6100c061034a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b6600480360360208110156100ff57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610366565b6100b66004803603606081101561013257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184600183028401116401000000008311171561019357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610455945050505050565b6100b66105fb565b6100c0610712565b6100b6600480360360408110156101fa57600080fd5b5063ffffffff813516906020013561072e565b6100b66004803603602081101561022357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ef565b600061024b8361099b565b9050600061025883610a1d565b9050610262610a62565b73ffffffffffffffffffffffffffffffffffffffff1663d34686398584846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102de5781810151838201526020016102c6565b50505050905090810190601f16801561030b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561032c57600080fd5b505af1158015610340573d6000803e3d6000fd5b5050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b61036e610afe565b73ffffffffffffffffffffffffffffffffffffffff1661038c610712565b73ffffffffffffffffffffffffffffffffffffffff161461040e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61045e33610b02565b6104c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826104d58282610bab565b61054057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061054c8482610bca565b90506105797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610bee565b1561058c5761058781610c0d565b6105f3565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b610603610afe565b73ffffffffffffffffffffffffffffffffffffffff16610621610712565b73ffffffffffffffffffffffffffffffffffffffff16146106a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b610736610afe565b73ffffffffffffffffffffffffffffffffffffffff16610754610712565b73ffffffffffffffffffffffffffffffffffffffff16146107d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b6107f7610afe565b73ffffffffffffffffffffffffffffffffffffffff16610815610712565b73ffffffffffffffffffffffffffffffffffffffff161461089757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114136026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b63ffffffff81166000908152609760205260409020548061099657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f0100000000000000000000000000000000000000000000000000000000000000602082015260218082019390935281518082039093018352604101905290565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610acd57600080fd5b505afa158015610ae1573d6000803e3d6000fd5b505050506040513d6020811015610af757600080fd5b5051905090565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d6020811015610ba357600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610be564ffffffffff85168284610c75565b95945050505050565b60006001610bfb83610cd6565b6001811115610c0657fe5b1492915050565b6000610c3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610d11565b6040805182815290519192507f2b51a16951b17b51a53e06c3041d704232f26354acf317a5b7bfeab23f4ca629919081900360200190a15050565b600080610c828484610da0565b9050604051811115610c92575060005b80610cc0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610ccf565b610ccb858585610e12565b9150505b9392505050565b6000610d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610e25565b60ff166001811115610bc457fe5b6000610d1c82610bee565b610d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611439602e913960400191505060405180910390fd5b610bc47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660006020610e2b565b81810182811015610bc457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b600060ff8216610e3d57506000610ccf565b610e4684610fd6565b6bffffffffffffffffffffffff16610e618460ff8516610da0565b1115610f4057610ea2610e7385610fea565b6bffffffffffffffffffffffff16610e8a86610fd6565b6bffffffffffffffffffffffff16858560ff16610ffe565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f05578181015183820152602001610eed565b50505050905090810190601f168015610f325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610f9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611488603a913960400191505060405180910390fd5b600882026000610fac86610fea565b6bffffffffffffffffffffffff1690506000610fc783611159565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b6060600061100b866111a2565b9150506000611019866111a2565b9150506000611027866111a2565b9150506000611035866111a2565b9150508383838360405160200180806114c2603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161146782397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff16111561120a5760ff600882021684901c6111c781611276565b61ffff16841793508160ff166010146111e257601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016111a8565b50600f5b60ff8160ff1610156112705760ff600882021684901c61122d81611276565b61ffff16831792508160ff1660001461124857601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161120e565b50915091565b600061128860048360ff16901c6112a6565b60ff161760081b62ffff001661129d826112a6565b60ff1617919050565b600060f08083179060ff821614156112c2576030915050610996565b8060ff1660f114156112d8576031915050610996565b8060ff1660f214156112ee576032915050610996565b8060ff1660f31415611304576033915050610996565b8060ff1660f4141561131a576034915050610996565b8060ff1660f51415611330576035915050610996565b8060ff1660f61415611346576036915050610996565b8060ff1660f7141561135c576037915050610996565b8060ff1660f81415611372576038915050610996565b8060ff1660f91415611388576039915050610996565b8060ff1660fa141561139e576061915050610996565b8060ff1660fb14156113b4576062915050610996565b8060ff1660fc14156113ca576063915050610996565b8060ff1660fd14156113e0576064915050610996565b8060ff1660fe14156113f6576065915050610996565b8060ff1660ff141561140c576066915050610996565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d65737361676554656d706c6174652f6e756d6265723a2076696577206d757374206265206f66207479706520412e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a26469706673582212206a704f307f65717d50535a101d40c1e44f217e43b9ba44889af3d7380a1ba2bd64736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; + "0x60806040523480156200001157600080fd5b506040516200191638038062001916833981810160405260208110156200003757600080fd5b505162000044816200004b565b50620003ac565b600054610100900460ff1680620000675750620000676200011b565b8062000076575060005460ff16155b620000b35760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620000df576000805460ff1961ff0019909116610100171660011790555b606580546001600160a01b0319166001600160a01b0384161790556200010462000139565b801562000117576000805461ff00191690555b5050565b60006200013330620001f760201b620009911760201c565b15905090565b600054610100900460ff1680620001555750620001556200011b565b8062000164575060005460ff16155b620001a15760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620001cd576000805460ff1961ff0019909116610100171660011790555b620001d7620001fd565b620001e1620002a5565b8015620001f4576000805461ff00191690555b50565b3b151590565b600054610100900460ff1680620002195750620002196200011b565b8062000228575060005460ff16155b620002655760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff16158015620001e1576000805460ff1961ff0019909116610100171660011790558015620001f4576000805461ff001916905550565b600054610100900460ff1680620002c15750620002c16200011b565b80620002d0575060005460ff16155b6200030d5760405162461bcd60e51b815260040180806020018281038252602e815260200180620018e8602e913960400191505060405180910390fd5b600054610100900460ff1615801562000339576000805460ff1961ff0019909116610100171660011790555b600062000345620003a8565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015620001f4576000805461ff001916905550565b3390565b61152c80620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146101d45780638da5cb5b146101dc578063b49c53a7146101e4578063f2fde38b1461020d57610088565b80631984a3301461008d5780633339df96146100b857806341bdc8b5146100e957806356d5d4751461011c575b600080fd5b6100b6600480360360408110156100a357600080fd5b5063ffffffff8135169060200135610240565b005b6100c061034a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b6600480360360208110156100ff57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610366565b6100b66004803603606081101561013257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184600183028401116401000000008311171561019357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610455945050505050565b6100b66105fb565b6100c0610712565b6100b6600480360360408110156101fa57600080fd5b5063ffffffff813516906020013561072e565b6100b66004803603602081101561022357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ef565b600061024b8361099b565b9050600061025883610a1d565b9050610262610a62565b73ffffffffffffffffffffffffffffffffffffffff1663fa31de018584846040518463ffffffff1660e01b8152600401808463ffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102de5781810151838201526020016102c6565b50505050905090810190601f16801561030b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561032c57600080fd5b505af1158015610340573d6000803e3d6000fd5b5050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff1681565b61036e610afe565b73ffffffffffffffffffffffffffffffffffffffff1661038c610712565b73ffffffffffffffffffffffffffffffffffffffff161461040e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61045e33610b02565b6104c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f217265706c696361000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b82826104d58282610bab565b61054057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2172656d6f746520726f75746572000000000000000000000000000000000000604482015290519081900360640190fd5b600061054c8482610bca565b90506105797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216610bee565b1561058c5761058781610c0d565b6105f3565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f2176616c696420616374696f6e00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b610603610afe565b73ffffffffffffffffffffffffffffffffffffffff16610621610712565b73ffffffffffffffffffffffffffffffffffffffff16146106a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60335460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60335473ffffffffffffffffffffffffffffffffffffffff1690565b610736610afe565b73ffffffffffffffffffffffffffffffffffffffff16610754610712565b73ffffffffffffffffffffffffffffffffffffffff16146107d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b63ffffffff909116600090815260976020526040902055565b6107f7610afe565b73ffffffffffffffffffffffffffffffffffffffff16610815610712565b73ffffffffffffffffffffffffffffffffffffffff161461089757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806114136026913960400191505060405180910390fd5b60335460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b803b15155b919050565b63ffffffff81166000908152609760205260409020548061099657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2172656d6f746500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f0100000000000000000000000000000000000000000000000000000000000000602082015260218082019390935281518082039093018352604101905290565b606554604080517f9fa92f9d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fa92f9d916004808301926020929190829003018186803b158015610acd57600080fd5b505afa158015610ae1573d6000803e3d6000fd5b505050506040513d6020811015610af757600080fd5b5051905090565b3390565b606554604080517f5190bc5300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291516000939290921691635190bc5391602480820192602092909190829003018186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d6020811015610ba357600080fd5b505192915050565b63ffffffff821660009081526097602052604090205481145b92915050565b815160009060208401610be564ffffffffff85168284610c75565b95945050505050565b60006001610bfb83610cd6565b6001811115610c0657fe5b1492915050565b6000610c3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610d11565b6040805182815290519192507f2b51a16951b17b51a53e06c3041d704232f26354acf317a5b7bfeab23f4ca629919081900360200190a15050565b600080610c828484610da0565b9050604051811115610c92575060005b80610cc0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050610ccf565b610ccb858585610e12565b9150505b9392505050565b6000610d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316610e25565b60ff166001811115610bc457fe5b6000610d1c82610bee565b610d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611439602e913960400191505060405180910390fd5b610bc47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660006020610e2b565b81810182811015610bc457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b60d81c90565b600060ff8216610e3d57506000610ccf565b610e4684610fd6565b6bffffffffffffffffffffffff16610e618460ff8516610da0565b1115610f4057610ea2610e7385610fea565b6bffffffffffffffffffffffff16610e8a86610fd6565b6bffffffffffffffffffffffff16858560ff16610ffe565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f05578181015183820152602001610eed565b50505050905090810190601f168015610f325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115610f9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611488603a913960400191505060405180910390fd5b600882026000610fac86610fea565b6bffffffffffffffffffffffff1690506000610fc783611159565b91909501511695945050505050565b60181c6bffffffffffffffffffffffff1690565b60781c6bffffffffffffffffffffffff1690565b6060600061100b866111a2565b9150506000611019866111a2565b9150506000611027866111a2565b9150506000611035866111a2565b9150508383838360405160200180806114c2603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a820152605001602161146782397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff16111561120a5760ff600882021684901c6111c781611276565b61ffff16841793508160ff166010146111e257601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016111a8565b50600f5b60ff8160ff1610156112705760ff600882021684901c61122d81611276565b61ffff16831792508160ff1660001461124857601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161120e565b50915091565b600061128860048360ff16901c6112a6565b60ff161760081b62ffff001661129d826112a6565b60ff1617919050565b600060f08083179060ff821614156112c2576030915050610996565b8060ff1660f114156112d8576031915050610996565b8060ff1660f214156112ee576032915050610996565b8060ff1660f31415611304576033915050610996565b8060ff1660f4141561131a576034915050610996565b8060ff1660f51415611330576035915050610996565b8060ff1660f61415611346576036915050610996565b8060ff1660f7141561135c576037915050610996565b8060ff1660f81415611372576038915050610996565b8060ff1660f91415611388576039915050610996565b8060ff1660fa141561139e576061915050610996565b8060ff1660fb14156113b4576062915050610996565b8060ff1660fc14156113ca576063915050610996565b8060ff1660fd14156113e0576064915050610996565b8060ff1660fe14156113f6576065915050610996565b8060ff1660ff141561140c576066915050610996565b5091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d65737361676554656d706c6174652f6e756d6265723a2076696577206d757374206265206f66207479706520412e20417474656d7074656420746f20696e646578206174206f666673657420307854797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657354797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a2646970667358221220928160dea47162e0f58b41daac9e04b44bc6dcf0455d87055907b05096b5794464736f6c63430007060033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564"; export class RouterTemplate__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/typescript/typechain/optics-xapps/factories/XAppConnectionManager__factory.ts b/typescript/typechain/optics-xapps/factories/XAppConnectionManager__factory.ts index f45e70149..dbe494286 100644 --- a/typescript/typechain/optics-xapps/factories/XAppConnectionManager__factory.ts +++ b/typescript/typechain/optics-xapps/factories/XAppConnectionManager__factory.ts @@ -129,25 +129,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - ], - name: "isOwner", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -349,7 +330,7 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114fd8061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b9cff16211610066578063b9cff162146102f7578063e0e7a9131461031a578063f2fde38b146103d2578063f31faefb14610405576100f5565b80638da5cb5b146102445780638f5d90e014610275578063916c3470146102a85780639fa92f9d146102ef576100f5565b80635f8b1dba116100d35780635f8b1dba146101b35780636ef0f37f146101ff578063715018a6146102345780638d3638f41461023c576100f5565b80632f54bf6e146100fa578063427ebef5146101415780635190bc5314610180575b600080fd5b61012d6004803603602081101561011057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610444565b604080519115158252519081900360200190f35b61012d6004803603604081101561015757600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610483565b61012d6004803603602081101561019657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104c3565b6101e6600480360360208110156101c957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f3565b6040805163ffffffff9092168252519081900360200190f35b6102326004803603602081101561021557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661050b565b005b6102326105fa565b6101e6610711565b61024c6107ad565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102326004803603602081101561028b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107c9565b610232600480360360608110156102be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff6020820135169060400135151561087d565b61024c6109cb565b61024c6004803603602081101561030d57600080fd5b503563ffffffff166109e7565b6102326004803603606081101561033057600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184600183028401116401000000008311171561039157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a0f945050505050565b610232600480360360208110156103e857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c88565b6102326004803603604081101561041b57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610e29565b600061044e6107ad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205463ffffffff16151590565b60016020526000908152604090205463ffffffff1681565b610513610f9d565b73ffffffffffffffffffffffffffffffffffffffff166105316107ad565b73ffffffffffffffffffffffffffffffffffffffff16146105b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610602610f9d565b73ffffffffffffffffffffffffffffffffffffffff166106206107ad565b73ffffffffffffffffffffffffffffffffffffffff16146106a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600354604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b15801561077c57600080fd5b505afa158015610790573d6000803e3d6000fd5b505050506040513d60208110156107a657600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6107d1610f9d565b73ffffffffffffffffffffffffffffffffffffffff166107ef6107ad565b73ffffffffffffffffffffffffffffffffffffffff161461087157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61087a81610fa1565b50565b610885610f9d565b73ffffffffffffffffffffffffffffffffffffffff166108a36107ad565b73ffffffffffffffffffffffffffffffffffffffff161461092557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610aa757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610ab083611069565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0c57600080fd5b505afa158015610b20573d6000803e3d6000fd5b505050506040513d6020811015610b3657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610bd085610bc98461106c565b8686611085565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610c7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c8182610fa1565b5050505050565b610c90610f9d565b73ffffffffffffffffffffffffffffffffffffffff16610cae6107ad565b73ffffffffffffffffffffffffffffffffffffffff1614610d3057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061145e6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610e31610f9d565b73ffffffffffffffffffffffffffffffffffffffff16610e4f6107ad565b73ffffffffffffffffffffffffffffffffffffffff1614610ed157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610eda82610fa1565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600283529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600160208181526040808420805463ffffffff168086526002845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061109185611069565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d657600080fd5b505afa1580156110ea573d6000803e3d6000fd5b505050506040513d602081101561110057600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506111648161117b565b905061117081856111cc565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b6000815160411461123e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a61125c86828585611266565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114846022913960400191505060405180910390fd5b8360ff16601b14806112f657508360ff16601c145b61134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114a66022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156113a7573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661145457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220683f50f78662403d2bd978fa6308ba6b50d5dc427107f1a48079cb422387fe6764736f6c63430007060033"; + "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6114808061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638f5d90e01161008c578063b9cff16211610066578063b9cff162146102b9578063e0e7a913146102dc578063f2fde38b14610394578063f31faefb146103c7576100ea565b80638f5d90e014610237578063916c34701461026a5780639fa92f9d146102b1576100ea565b80636ef0f37f116100c85780636ef0f37f146101c1578063715018a6146101f65780638d3638f4146101fe5780638da5cb5b14610206576100ea565b8063427ebef5146100ef5780635190bc53146101425780635f8b1dba14610175575b600080fd5b61012e6004803603604081101561010557600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610406565b604080519115158252519081900360200190f35b61012e6004803603602081101561015857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b6101a86004803603602081101561018b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610476565b6040805163ffffffff9092168252519081900360200190f35b6101f4600480360360208110156101d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048e565b005b6101f461057d565b6101a8610694565b61020e610730565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f46004803603602081101561024d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074c565b6101f46004803603606081101561028057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001351515610800565b61020e61094e565b61020e600480360360208110156102cf57600080fd5b503563ffffffff1661096a565b6101f4600480360360608110156102f257600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561031f57600080fd5b82018360208201111561033157600080fd5b8035906020019184600183028401116401000000008311171561035357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610992945050505050565b6101f4600480360360208110156103aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c0b565b6101f4600480360360408110156103dd57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013563ffffffff16610dac565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205460ff1692915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60026020526000908152604090205463ffffffff1681565b610496610f20565b73ffffffffffffffffffffffffffffffffffffffff166104b4610730565b73ffffffffffffffffffffffffffffffffffffffff161461053657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610585610f20565b73ffffffffffffffffffffffffffffffffffffffff166105a3610730565b73ffffffffffffffffffffffffffffffffffffffff161461062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f4916004808301926020929190829003018186803b1580156106ff57600080fd5b505afa158015610713573d6000803e3d6000fd5b505050506040513d602081101561072957600080fd5b5051905090565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610754610f20565b73ffffffffffffffffffffffffffffffffffffffff16610772610730565b73ffffffffffffffffffffffffffffffffffffffff16146107f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107fd81610f24565b50565b610808610f20565b73ffffffffffffffffffffffffffffffffffffffff16610826610730565b73ffffffffffffffffffffffffffffffffffffffff16146108a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604080832063ffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815194855291840191909152805191927f517de16b526853f481451c5151e87484e1b251ec7d0302efa1019c2ece179c2c929081900390910190a2505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b63ffffffff831660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f217265706c696361206578697374730000000000000000000000000000000000604482015290519081900360640190fd5b610a3383610fec565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663df034cd06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b3d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f2163757272656e74207570646174657200000000000000000000000000000000604482015290519081900360640190fd5b6000610b5385610b4c84610fef565b8686611008565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020908152604080832063ffffffff8a16845290915290205490915060ff16610bfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f2176616c69642077617463686572000000000000000000000000000000000000604482015290519081900360640190fd5b610c0482610f24565b5050505050565b610c13610f20565b73ffffffffffffffffffffffffffffffffffffffff16610c31610730565b73ffffffffffffffffffffffffffffffffffffffff1614610cb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610d1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806113e16026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610db4610f20565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610730565b73ffffffffffffffffffffffffffffffffffffffff1614610e5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610e5d82610f24565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8716908117909155808452600383529281902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168517905580519384525191927f8440df9bf8a8542634a9eb196da1735b786ed9aa2fc12b080ac34c5fa81a9234929081900390910190a25050565b3390565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600260208181526040808420805463ffffffff168086526003845282862080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559486905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690925581519384529051919283927fce1533133fb359ace801d3176bbad25ace030d714aed35e38a6293c8a60b115b929181900390910190a25050565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b60008061101485610fec565b73ffffffffffffffffffffffffffffffffffffffff166345630b1a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105957600080fd5b505afa15801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b50516040805160208181018490527fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1682840152604480830189905283518084039091018152606490920190925280519101209091506110e7816110fe565b90506110f3818561114f565b979650505050505050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146111c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111df868285856111e9565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611264576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114076022913960400191505060405180910390fd5b8360ff16601b148061127957508360ff16601c145b6112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114296022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561132a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a2646970667358221220e252cd7a192775fdbe7cf98f0d91099ce2b33a819c2ac095bc3a71826161937b64736f6c63430007060033"; export class XAppConnectionManager__factory extends ContractFactory { constructor(signer?: Signer) { diff --git a/vectors/destinationNonce.json b/vectors/destinationNonce.json new file mode 100644 index 000000000..7687339dc --- /dev/null +++ b/vectors/destinationNonce.json @@ -0,0 +1,27 @@ +[ + { + "destination": 1, + "expectedDestinationAndNonce": 4294967298, + "nonce": 2 + }, + { + "destination": 2, + "expectedDestinationAndNonce": 8589934595, + "nonce": 3 + }, + { + "destination": 3, + "expectedDestinationAndNonce": 12884901892, + "nonce": 4 + }, + { + "destination": 4, + "expectedDestinationAndNonce": 17179869189, + "nonce": 5 + }, + { + "destination": 5, + "expectedDestinationAndNonce": 21474836486, + "nonce": 6 + } +] diff --git a/vectors/destinationSequence.json b/vectors/destinationSequence.json deleted file mode 100644 index 511fab324..000000000 --- a/vectors/destinationSequence.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "destination": 1, - "expectedDestinationAndSequence": 4294967298, - "sequence": 2 - }, - { - "destination": 2, - "expectedDestinationAndSequence": 8589934595, - "sequence": 3 - }, - { - "destination": 3, - "expectedDestinationAndSequence": 12884901892, - "sequence": 4 - }, - { - "destination": 4, - "expectedDestinationAndSequence": 17179869189, - "sequence": 5 - }, - { - "destination": 5, - "expectedDestinationAndSequence": 21474836486, - "sequence": 6 - } -] diff --git a/vectors/message.json b/vectors/message.json index c42cef6b8..000cdd5b5 100644 --- a/vectors/message.json +++ b/vectors/message.json @@ -5,10 +5,10 @@ 52 ], "destination": 2000, - "leaf": "0x31def026c93f999e8beacc858eb138c6ed85e1d6db7928786a5f72cb70836316", + "messageHash": "0x31def026c93f999e8beacc858eb138c6ed85e1d6db7928786a5f72cb70836316", "origin": 1000, "recipient": "0x0000000000000000000000002222222222222222222222222222222222222222", "sender": "0x0000000000000000000000001111111111111111111111111111111111111111", - "sequence": 1 + "nonce": 1 } ]