From a73de1781e7c14882eec77bf58f15ded389256eb Mon Sep 17 00:00:00 2001 From: yoduyodu Date: Wed, 3 Apr 2024 09:23:53 -0700 Subject: [PATCH] abigen --- Cargo.lock | 2 + Cargo.toml | 1 + bindings_ffi/Cargo.lock | 6 - xmtp_id/Cargo.toml | 3 +- xmtp_id/abi/ERC1271.json | 26 + xmtp_id/src/bindings/base_64.rs | 119 - xmtp_id/src/bindings/base_64_url.rs | 119 - xmtp_id/src/bindings/coinbase_smart_wallet.rs | 2623 ---------------- .../bindings/coinbase_smart_wallet_factory.rs | 496 --- xmtp_id/src/bindings/dummy.rs | 576 ---- xmtp_id/src/bindings/erc1271.rs | 463 --- .../src/bindings/erc1271_input_generator.rs | 316 -- xmtp_id/src/bindings/fcl_ecdsa.rs | 119 - xmtp_id/src/bindings/fcl_elliptic_zz.rs | 121 - xmtp_id/src/bindings/helpers.rs | 70 - xmtp_id/src/bindings/i_aggregator.rs | 384 --- xmtp_id/src/bindings/i_entry_point.rs | 2546 ---------------- xmtp_id/src/bindings/i_nonce_manager.rs | 247 -- xmtp_id/src/bindings/i_stake_manager.rs | 855 ------ .../src/bindings/ierc721_token_receiver.rs | 165 - xmtp_id/src/bindings/lib_clone.rs | 294 -- xmtp_id/src/bindings/lib_string.rs | 260 -- .../bindings/mock_coinbase_smart_wallet.rs | 2710 ----------------- xmtp_id/src/bindings/mock_entry_point.rs | 468 --- xmtp_id/src/bindings/mock_erc20.rs | 1299 -------- xmtp_id/src/bindings/mock_erc721.rs | 1389 --------- xmtp_id/src/bindings/mock_multi_ownable.rs | 1191 -------- xmtp_id/src/bindings/mock_target.rs | 495 --- xmtp_id/src/bindings/mod.rs | 37 - xmtp_id/src/bindings/multi_ownable.rs | 1132 ------- xmtp_id/src/bindings/receiver.rs | 70 - xmtp_id/src/bindings/shared_types.rs | 64 - xmtp_id/src/bindings/signature_checker_lib.rs | 121 - xmtp_id/src/bindings/static_.rs | 119 - xmtp_id/src/bindings/user_operation_lib.rs | 121 - xmtp_id/src/bindings/utils.rs | 202 -- xmtp_id/src/bindings/uups_upgradeable.rs | 411 --- xmtp_id/src/bindings/web_authn.rs | 119 - xmtp_id/src/erc1271_verifier.rs | 45 + xmtp_id/src/lib.rs | 2 +- xmtp_id/src/verifier.rs | 47 - 41 files changed, 77 insertions(+), 19776 deletions(-) create mode 100644 xmtp_id/abi/ERC1271.json delete mode 100644 xmtp_id/src/bindings/base_64.rs delete mode 100644 xmtp_id/src/bindings/base_64_url.rs delete mode 100644 xmtp_id/src/bindings/coinbase_smart_wallet.rs delete mode 100644 xmtp_id/src/bindings/coinbase_smart_wallet_factory.rs delete mode 100644 xmtp_id/src/bindings/dummy.rs delete mode 100644 xmtp_id/src/bindings/erc1271.rs delete mode 100644 xmtp_id/src/bindings/erc1271_input_generator.rs delete mode 100644 xmtp_id/src/bindings/fcl_ecdsa.rs delete mode 100644 xmtp_id/src/bindings/fcl_elliptic_zz.rs delete mode 100644 xmtp_id/src/bindings/helpers.rs delete mode 100644 xmtp_id/src/bindings/i_aggregator.rs delete mode 100644 xmtp_id/src/bindings/i_entry_point.rs delete mode 100644 xmtp_id/src/bindings/i_nonce_manager.rs delete mode 100644 xmtp_id/src/bindings/i_stake_manager.rs delete mode 100644 xmtp_id/src/bindings/ierc721_token_receiver.rs delete mode 100644 xmtp_id/src/bindings/lib_clone.rs delete mode 100644 xmtp_id/src/bindings/lib_string.rs delete mode 100644 xmtp_id/src/bindings/mock_coinbase_smart_wallet.rs delete mode 100644 xmtp_id/src/bindings/mock_entry_point.rs delete mode 100644 xmtp_id/src/bindings/mock_erc20.rs delete mode 100644 xmtp_id/src/bindings/mock_erc721.rs delete mode 100644 xmtp_id/src/bindings/mock_multi_ownable.rs delete mode 100644 xmtp_id/src/bindings/mock_target.rs delete mode 100644 xmtp_id/src/bindings/mod.rs delete mode 100644 xmtp_id/src/bindings/multi_ownable.rs delete mode 100644 xmtp_id/src/bindings/receiver.rs delete mode 100644 xmtp_id/src/bindings/shared_types.rs delete mode 100644 xmtp_id/src/bindings/signature_checker_lib.rs delete mode 100644 xmtp_id/src/bindings/static_.rs delete mode 100644 xmtp_id/src/bindings/user_operation_lib.rs delete mode 100644 xmtp_id/src/bindings/utils.rs delete mode 100644 xmtp_id/src/bindings/uups_upgradeable.rs delete mode 100644 xmtp_id/src/bindings/web_authn.rs create mode 100644 xmtp_id/src/erc1271_verifier.rs delete mode 100644 xmtp_id/src/verifier.rs diff --git a/Cargo.lock b/Cargo.lock index fe7d560ac..1708d2575 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5786,8 +5786,10 @@ dependencies = [ name = "xmtp_id" version = "0.1.0" dependencies = [ + "anyhow", "async-trait", "chrono", + "ethers", "futures", "log", "openmls", diff --git a/Cargo.toml b/Cargo.toml index 20bed97a2..fa91d97ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,6 +45,7 @@ tls_codec = "0.4.0" tokio = { version = "1.35.1", features = ["macros"] } tonic = "^0.11" tracing = "0.1" +anyhow = "1.0" # Internal Crate Dependencies xmtp_cryptography = { path = "xmtp_cryptography" } diff --git a/bindings_ffi/Cargo.lock b/bindings_ffi/Cargo.lock index ce3dade1a..f835d820b 100644 --- a/bindings_ffi/Cargo.lock +++ b/bindings_ffi/Cargo.lock @@ -5383,7 +5383,6 @@ dependencies = [ "pbjson-types 0.5.1", "prost 0.12.3", "serde", - "serde_json", "tokio", "tonic", "tower", @@ -5474,9 +5473,7 @@ name = "xmtp_v2" version = "0.1.0" dependencies = [ "aes-gcm", - "chrono", "ecdsa 0.15.1", - "ethers-core", "generic-array", "getrandom", "hex", @@ -5484,11 +5481,8 @@ dependencies = [ "k256 0.12.0", "rand", "rand_chacha", - "rlp", - "serde", "sha2", "sha3", - "thiserror", ] [[package]] diff --git a/xmtp_id/Cargo.toml b/xmtp_id/Cargo.toml index 76532705a..f4cedb0d4 100644 --- a/xmtp_id/Cargo.toml +++ b/xmtp_id/Cargo.toml @@ -21,4 +21,5 @@ chrono.workspace = true serde.workspace = true async-trait.workspace = true futures.workspace = true - +ethers.workspace = true +anyhow.workspace = true diff --git a/xmtp_id/abi/ERC1271.json b/xmtp_id/abi/ERC1271.json new file mode 100644 index 000000000..9427c5e08 --- /dev/null +++ b/xmtp_id/abi/ERC1271.json @@ -0,0 +1,26 @@ +[ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_hash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "magicValue", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/xmtp_id/src/bindings/base_64.rs b/xmtp_id/src/bindings/base_64.rs deleted file mode 100644 index 7e103147e..000000000 --- a/xmtp_id/src/bindings/base_64.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub use base_64::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod base_64 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static BASE64_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9DGb\x8C3\x8A\xAC\x06\x01\xDF\x06~\x1A1:\x8E`:\xF3R\x12\xED\xF1\xE1\x1C\x9AT\xAC\x16\x07\xADXdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static BASE64_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9DGb\x8C3\x8A\xAC\x06\x01\xDF\x06~\x1A1:\x8E`:\xF3R\x12\xED\xF1\xE1\x1C\x9AT\xAC\x16\x07\xADXdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static BASE64_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Base64(::ethers::contract::Contract); - impl ::core::clone::Clone for Base64 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Base64 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Base64 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Base64 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Base64)) - .field(&self.address()) - .finish() - } - } - impl Base64 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - BASE64_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - BASE64_ABI.clone(), - BASE64_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Base64 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/base_64_url.rs b/xmtp_id/src/bindings/base_64_url.rs deleted file mode 100644 index 4324c9f5b..000000000 --- a/xmtp_id/src/bindings/base_64_url.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub use base_64_url::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod base_64_url { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static BASE64URL_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xD5\xE6\x1B\xE4\x1A8S\xB6\x84\xB6-\x82\x8B\x9D\xFB6\x95\xEB\xDA'\x91Y\x05'}\x9C\xC1\x07\x8B\xA5 \x90dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static BASE64URL_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xD5\xE6\x1B\xE4\x1A8S\xB6\x84\xB6-\x82\x8B\x9D\xFB6\x95\xEB\xDA'\x91Y\x05'}\x9C\xC1\x07\x8B\xA5 \x90dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static BASE64URL_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Base64Url(::ethers::contract::Contract); - impl ::core::clone::Clone for Base64Url { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Base64Url { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Base64Url { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Base64Url { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Base64Url)) - .field(&self.address()) - .finish() - } - } - impl Base64Url { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - BASE64URL_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - BASE64URL_ABI.clone(), - BASE64URL_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Base64Url { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/coinbase_smart_wallet.rs b/xmtp_id/src/bindings/coinbase_smart_wallet.rs deleted file mode 100644 index 052bb35a3..000000000 --- a/xmtp_id/src/bindings/coinbase_smart_wallet.rs +++ /dev/null @@ -1,2623 +0,0 @@ -pub use coinbase_smart_wallet::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod coinbase_smart_wallet { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("REPLAYABLE_NONCE_KEY"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("REPLAYABLE_NONCE_KEY",), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("canSkipChainIdValidation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("canSkipChainIdValidation",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("functionSelector"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("domainSeparator"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("domainSeparator"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("eip712Domain"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("eip712Domain"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("fields"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(1usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes1"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("version"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("chainId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("verifyingContract"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("salt"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("extensions"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("entryPoint"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("entryPoint"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("execute"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("execute"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("target"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("executeBatch"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("executeBatch"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("calls"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct CoinbaseSmartWallet.Call[]", - ), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("executeWithoutChainIdValidation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("executeWithoutChainIdValidation",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("getUserOpHashWithoutChainId"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getUserOpHashWithoutChainId",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("implementation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("implementation"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("$"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owners"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Bytes, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes[]"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isValidSignature"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isValidSignature"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("signature"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("result"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("proxiableUUID"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("proxiableUUID"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("replaySafeHash"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("replaySafeHash"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("newImplementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("validateUserOp"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateUserOp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("missingAccountFunds",), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("validationData"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AddOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("AddOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("RemoveOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("RemoveOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Upgraded"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Upgraded"), - inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("implementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - },], - anonymous: false, - },], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Initialized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Initialized"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidNonceKey"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidNonceKey"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("SelectorNotAllowed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("SelectorNotAllowed"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("selector"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Unauthorized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Unauthorized"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - inputs: ::std::vec![], - },], - ), - ]), - receive: true, - fallback: true, - } - } - ///The parsed JSON ABI of the contract. - pub static COINBASESMARTWALLET_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0`@R0`\x80R4\x80\x15b\0\0\x15W`\0\x80\xFD[P`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81b\0\0-W\x90PP`@\x80Q`\0` \x82\x01R\x91\x92P\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x81`\0\x81Q\x81\x10b\0\0wWb\0\0wb\0\x03zV[` \x90\x81\x02\x91\x90\x91\x01\x01Rb\0\0\x8D\x81b\0\0\x94V[Pb\0\x05\xB0V[`\0[\x81Q\x81\x10\x15b\0\x02&W\x81\x81\x81Q\x81\x10b\0\0\xB6Wb\0\0\xB6b\0\x03zV[` \x02` \x01\x01QQ` \x14\x15\x80\x15b\0\0\xEEWP\x81\x81\x81Q\x81\x10b\0\0\xE0Wb\0\0\xE0b\0\x03zV[` \x02` \x01\x01QQ`@\x14\x15[\x15b\0\x016W\x81\x81\x81Q\x81\x10b\0\x01\tWb\0\x01\tb\0\x03zV[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01b\0\x01-\x91\x90b\0\x03\xB6V[`@Q\x80\x91\x03\x90\xFD[\x81\x81\x81Q\x81\x10b\0\x01KWb\0\x01Kb\0\x03zV[` \x02` \x01\x01QQ` \x14\x80\x15b\0\x01\x93WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10b\0\x01~Wb\0\x01~b\0\x03zV[` \x02` \x01\x01Qb\0\x01\x91\x90b\0\x03\xEBV[\x11[\x15b\0\x01\xD2W\x81\x81\x81Q\x81\x10b\0\x01\xAEWb\0\x01\xAEb\0\x03zV[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01b\0\x01-\x91\x90b\0\x03\xB6V[b\0\x02\x1D\x82\x82\x81Q\x81\x10b\0\x01\xEBWb\0\x01\xEBb\0\x03zV[` \x02` \x01\x01Qb\0\x02\x03b\0\x02*` \x1B` \x1CV[\x80T\x90`\0b\0\x02\x13\x83b\0\x04\x13V[\x90\x91UPb\0\x02=V[`\x01\x01b\0\0\x97V[PPV[`\0\x80Q` b\087\x839\x81Q\x91R\x90V[b\0\x02H\x82b\0\x03&V[\x15b\0\x02kW\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01b\0\x01-\x91\x90b\0\x03\xB6V[`\x01`\0\x80Q` b\087\x839\x81Q\x91R`\x02\x01\x83`@Qb\0\x02\x90\x91\x90b\0\x04;V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81b\0\x02\xC8`\0\x80Q` b\087\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90b\0\x02\xE7\x90\x82b\0\x04\xE4V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qb\0\x03\x1A\x91\x90b\0\x03\xB6V[`@Q\x80\x91\x03\x90\xA2PPV[`\0`\0\x80Q` b\087\x839\x81Q\x91R`\x02\x01\x82`@Qb\0\x03K\x91\x90b\0\x04;V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15b\0\x03\xADW\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x03\x93V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Rb\0\x03\xD7\x81`@\x85\x01` \x87\x01b\0\x03\x90V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15b\0\x04\rW`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0`\x01\x82\x01b\0\x044WcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\0\x82Qb\0\x04O\x81\x84` \x87\x01b\0\x03\x90V[\x91\x90\x91\x01\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x04nW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x04\rWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[`\x1F\x82\x11\x15b\0\x04\xDFW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x04\xBAWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x04\xDBW\x82\x81U`\x01\x01b\0\x04\xC6V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x05\0Wb\0\x05\0b\0\x03dV[b\0\x05\x18\x81b\0\x05\x11\x84Tb\0\x04YV[\x84b\0\x04\x8FV[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x05PW`\0\x84\x15b\0\x057WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x04\xDBV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x05\x81W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x05`V[P\x85\x82\x10\x15b\0\x05\xA0W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x80Qa2db\0\x05\xD3`\09`\0\x81\x81a\x08\x1E\x01Ra\tU\x01Ra2d`\0\xF3\xFE`\x80`@R`\x046\x10a\x01OW`\x005`\xE0\x1C\x80cr\xDE;Z\x11a\0\xB6W\x80c\xB0\xD6\x91\xFE\x11a\0oW\x80c\xB0\xD6\x91\xFE\x14a\x03\xF4W\x80c\xB6\x1D'\xF6\x14a\x04\x1BW\x80c\xBFk\xA1\xFC\x14a\x04.W\x80c\xCE\x15\x06\xBE\x14a\x04AW\x80c\xD9H\xFD.\x14a\x04aW\x80c\xF6\x98\xDA%\x14a\x04\x83Wa\x01VV[\x80cr\xDE;Z\x14a\x03)W\x80c\x84\xB0\x19n\x14a\x03IW\x80c\x88\xCEL|\x14a\x03qW\x80c\x8E\xA6\x90)\x14a\x03\x87W\x80c\x9F\x9B\xCB4\x14a\x03\xB4W\x80c\xA2\xE1\xA8\xD8\x14a\x03\xD4Wa\x01VV[\x80c:\x87\x1C\xDD\x11a\x01\x08W\x80c:\x87\x1C\xDD\x14a\x02eW\x80cO\x1E\xF2\x86\x14a\x02\x86W\x80cOn\x7F\"\x14a\x02\x99W\x80cR\xD1\x90-\x14a\x02\xB9W\x80c\\`\xDA\x1B\x14a\x02\xCEW\x80co-\xE7\x0E\x14a\x03\x16Wa\x01VV[\x80c\x06j\x1E\xB7\x14a\x01\x84W\x80c\x0F\x0F?$\x14a\x01\xB9W\x80c\x16&\xBA~\x14a\x01\xD9W\x80c\x1C\xA59?\x14a\x02\x12W\x80c)V^;\x14a\x022W\x80c4\xFC\xD5\xBE\x14a\x02RWa\x01VV[6a\x01VW\0[`\x005`\xE0\x1Cc\xBC\x19|\x81\x81\x14c\xF2:na\x82\x14\x17c\x15\x0Bz\x02\x82\x14\x17\x15a\x01\x82W\x80` R` `<\xF3[\0[4\x80\x15a\x01\x90W`\0\x80\xFD[Pa\x01\xA4a\x01\x9F6`\x04a'iV[a\x04\x98V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xC5W`\0\x80\xFD[Pa\x01\x82a\x01\xD46`\x04a'\xA7V[a\x05\x07V[4\x80\x15a\x01\xE5W`\0\x80\xFD[Pa\x01\xF9a\x01\xF46`\x04a(\nV[a\x05?V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x01\xB0V[4\x80\x15a\x02\x1EW`\0\x80\xFD[Pa\x01\xA4a\x02-6`\x04a)@V[a\x05yV[4\x80\x15a\x02>W`\0\x80\xFD[Pa\x01\x82a\x02M6`\x04a'iV[a\x05\xB4V[a\x01\x82a\x02`6`\x04a)\xB8V[a\x05\xDDV[a\x02xa\x02s6`\x04a*\x12V[a\x06\xE1V[`@Q\x90\x81R` \x01a\x01\xB0V[a\x01\x82a\x02\x946`\x04a*_V[a\x08\x1CV[4\x80\x15a\x02\xA5W`\0\x80\xFD[Pa\x02xa\x02\xB46`\x04a*\x98V[a\t\0V[4\x80\x15a\x02\xC5W`\0\x80\xFD[Pa\x02xa\tQV[4\x80\x15a\x02\xDAW`\0\x80\xFD[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xB0V[a\x01\x82a\x03$6`\x04a)\xB8V[a\t\xB1V[4\x80\x15a\x035W`\0\x80\xFD[Pa\x01\x82a\x03D6`\x04a*\xCCV[a\t\xF1V[4\x80\x15a\x03UW`\0\x80\xFD[Pa\x03^a\n\xDEV[`@Qa\x01\xB0\x97\x96\x95\x94\x93\x92\x91\x90a+5V[4\x80\x15a\x03}W`\0\x80\xFD[Pa\x02xa!\x05\x81V[4\x80\x15a\x03\x93W`\0\x80\xFD[Pa\x03\xA7a\x03\xA26`\x04a*\xCCV[a\x0B\x05V[`@Qa\x01\xB0\x91\x90a+\xCEV[4\x80\x15a\x03\xC0W`\0\x80\xFD[Pa\x01\xA4a\x03\xCF6`\x04a+\xE1V[a\x0B\xC6V[4\x80\x15a\x03\xE0W`\0\x80\xFD[Pa\x01\xA4a\x03\xEF6`\x04a'\xA7V[a\x0CBV[4\x80\x15a\x04\0W`\0\x80\xFD[Ps_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89a\x02\xFEV[a\x01\x82a\x04)6`\x04a,\x0BV[a\x0C\x88V[a\x01\x82a\x04<6`\x04a,dV[a\x0C\xECV[4\x80\x15a\x04MW`\0\x80\xFD[Pa\x02xa\x04\\6`\x04a*\xCCV[a\r\xADV[4\x80\x15a\x04mW`\0\x80\xFD[P`\0\x80Q` a2\x0F\x839\x81Q\x91RTa\x02xV[4\x80\x15a\x04\x8FW`\0\x80\xFD[Pa\x02xa\r\xB8V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x04\xEB\x91a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P[\x92\x91PPV[a\x05\x0Fa\x0E>V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x05<\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x0EpV[PV[`\0a\x05Ta\x05M\x85a\r\xADV[\x84\x84a\x0E\x9BV[\x15a\x05gWPc\x0B\x13]?`\xE1\x1Ba\x05rV[P`\x01`\x01`\xE0\x1B\x03\x19[\x93\x92PPPV[`\0`\0\x80Q` a2\x0F\x839\x81Q\x91R`\x02\x01\x82`@Qa\x05\x9B\x91\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x05\xBCa\x0E>V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x05\xD9\x90``\x01a\x05(V[PPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x06\0Wa\x06\0a\x0E>V[`\0[\x81\x81\x10\x15a\x06\xDCWa\x06\xD4\x83\x83\x83\x81\x81\x10a\x06 Wa\x06 a,\xB5V[\x90P` \x02\x81\x01\x90a\x062\x91\x90a,\xCBV[a\x06@\x90` \x81\x01\x90a'\xA7V[\x84\x84\x84\x81\x81\x10a\x06RWa\x06Ra,\xB5V[\x90P` \x02\x81\x01\x90a\x06d\x91\x90a,\xCBV[` \x015\x85\x85\x85\x81\x81\x10a\x06zWa\x06za,\xB5V[\x90P` \x02\x81\x01\x90a\x06\x8C\x91\x90a,\xCBV[a\x06\x9A\x90`@\x81\x01\x90a,\xE1V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[`\x01\x01a\x06\x03V[PPPV[`\x003s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x07\x16W`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x85\x015`@\x1C`\x04a\x07.``\x88\x01\x88a,\xE1V[\x90P\x10\x15\x80\x15a\x07rWPa\x07F``\x87\x01\x87a,\xE1V[a\x07U\x91`\x04\x91`\0\x91a-'V[a\x07^\x91a-QV[`\x01`\x01`\xE0\x1B\x03\x19\x16c\xBFk\xA1\xFC`\xE0\x1B\x14[\x15a\x07\xB1Wa\x07\x80\x86a\t\0V[\x94Pa!\x05\x81\x14a\x07\xACW`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[a\x07\xD6V[a!\x05\x81\x03a\x07\xD6W`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x07\xA3V[a\x07\xED\x85a\x07\xE8a\x01@\x89\x01\x89a,\xE1V[a\x0E\x9BV[\x15a\x07\xFCW`\0\x92PPa\x08\x02V[`\x01\x92PP[\x80\x15a\x08\x14W`\08`\08\x843Z\xF1P[P\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\x08RWc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[a\x08[\x84a\x10 V[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x08\xADWcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\x08\xFAW`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\x08\xF8W=`\0\x82>=\x81\xFD[P[PPPPV[`\0a\t\x0B\x82a\x10(V[`@\x80Q` \x81\x01\x92\x90\x92Rs_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x90\x82\x01R``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\t\x89Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91P[P\x90V[`\0\x80Q` a2\x0F\x839\x81Q\x91RT\x15a\t\xDFW`@Qc\x02\xEDT=`\xE5\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xD9a\t\xEC\x82\x84a-\x81V[a\x10AV[a\t\xF9a\x0E>V[`\0a\n\x04\x82a\x0B\x05V[\x90P\x80Q`\0\x03a\n+W`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01a\x07\xA3V[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\n[\x90\x83\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\n\x87`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\n\xA2\x91a'\x1FV[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\n\xD2\x91\x90a+\xCEV[`@Q\x80\x91\x03\x90\xA2PPV[`\x0F`\xF8\x1B``\x80`\0\x80\x80\x83a\n\xF3a\x11\x93V[\x97\x98\x90\x97\x96PF\x95P0\x94P\x91\x92P\x90V[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x0BA\x90a.\x06V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0Bm\x90a.\x06V[\x80\x15a\x0B\xBAW\x80`\x1F\x10a\x0B\x8FWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0B\xBAV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0B\x9DW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c)V^;`\xE0\x1B\x14\x80a\x0B\xF7WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x03\xC3\xCF\xC9`\xE2\x1B\x14[\x80a\x0C\x12WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c9o\x1D\xAD`\xE1\x1B\x14[\x80a\x0C-WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c'\x8FyC`\xE1\x1B\x14[\x15a\x0C:WP`\x01\x91\x90PV[P`\0\x91\x90PV[`\0`\0\x80Q` a2\x0F\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\x9B\x91a,\x99V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x0C\xABWa\x0C\xABa\x0E>V[a\x08\xFA\x84\x84\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x1FW`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r.`\x04\x82\x84\x86a-'V[a\r7\x91a-QV[\x90Pa\rB\x81a\x0B\xC6V[a\rkW`@Qc\x1D\x83p\xA3`\xE1\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`\x04\x82\x01R`$\x01a\x07\xA3V[a\x06\xDC0`\0\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[`\0a\x05\x01\x82a\x11\xDAV[`\0\x80`\0a\r\xC5a\x11\x93V[\x81Q` \x80\x84\x01\x91\x90\x91 \x82Q\x82\x84\x01 `@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x94\x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R\x91\x93P\x91P`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x90V[a\x0EG3a\x0CBV[\x80a\x0EQWP30\x14[\x15a\x0EXWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05<\x81`\0\x80Q` a2\x0F\x839\x81Q\x91R[\x80T\x90`\0a\x0E\x92\x83a.PV[\x91\x90PUa\x12\x10V[`\0\x80a\x0E\xAA\x83\x85\x01\x85a.iV[\x90P`\0a\x0E\xBB\x82`\0\x01Qa\x0B\x05V[\x90P\x80Q` \x03a\x0F\x1AW`\x01`\x01`\xA0\x1B\x03a\x0E\xD7\x82a.\xF5V[\x11\x15a\x0E\xF8W\x80`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\0` \x82\x01Q\x90Pa\x0F\x10\x81\x88\x85` \x01Qa\x12\xDFV[\x93PPPPa\x05rV[\x80Q`@\x03a\x0F\x95W`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x0F:\x91\x90a/\x19V[\x91P\x91P`\0\x84` \x01Q\x80` \x01\x90Q\x81\x01\x90a\x0FX\x91\x90a/\x82V[\x90Pa\x0F\x89\x89`@Q` \x01a\x0Fp\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\0\x83\x86\x86a\x13\xE4V[\x95PPPPPPa\x05rV[\x80`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84\x84`@Qa\x0F\xCC\x91\x90a,\x99V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x10\tW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x10\x0EV[``\x91P[P\x91P\x91P\x81a\x08\xF8W\x80Q` \x82\x01\xFD[a\x05V[`\0a\x103\x82a\x17TV[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x81Q\x81\x10\x15a\x05\xD9W\x81\x81\x81Q\x81\x10a\x10_Wa\x10_a,\xB5V[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x10\x93WP\x81\x81\x81Q\x81\x10a\x10\x85Wa\x10\x85a,\xB5V[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x10\xCCW\x81\x81\x81Q\x81\x10a\x10\xAAWa\x10\xAAa,\xB5V[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[\x81\x81\x81Q\x81\x10a\x10\xDEWa\x10\xDEa,\xB5V[` \x02` \x01\x01QQ` \x14\x80\x15a\x11 WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x11\rWa\x11\ra,\xB5V[` \x02` \x01\x01Qa\x11\x1E\x90a.\xF5V[\x11[\x15a\x11YW\x81\x81\x81Q\x81\x10a\x117Wa\x117a,\xB5V[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[a\x11\x8B\x82\x82\x81Q\x81\x10a\x11nWa\x11na,\xB5V[` \x02` \x01\x01Qa\x0E\x84`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\x01\x01a\x10DV[`@\x80Q\x80\x82\x01\x82R`\x15\x81Rt\x10\xDB\xDA[\x98\x98\\\xD9H\x14\xDBX\\\x9D\x08\x15\xD8[\x1B\x19]`Z\x1B` \x80\x83\x01\x91\x90\x91R\x82Q\x80\x84\x01\x90\x93R`\x01\x83R`1`\xF8\x1B\x90\x83\x01R\x91V[`\0a\x11\xE4a\r\xB8V[a\x11\xED\x83a\x18'V[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x92\x90\x92R`B\x82\x01R`b\x01a\t4V[a\x12\x19\x82a\x05yV[\x15a\x129W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\x01`\0\x80Q` a2\x0F\x839\x81Q\x91R`\x02\x01\x83`@Qa\x12[\x91\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x12\x91`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x12\xAE\x90\x82a0\x8DV[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\n\xD2\x91\x90a+\xCEV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91`\0\x83\x15a\x05rW`@Q\x83`\0R` \x83\x01Q`@R`@\x83Q\x03a\x13OW`@\x83\x01Q`\x1B\x81`\xFF\x1C\x01` R\x80`\x01\x1B`\x01\x1C``RP` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13MWP`\0``R`@RP`\x01a\x05rV[P[`A\x83Q\x03a\x13\x95W``\x83\x01Q`\0\x1A` R`@\x83\x01Q``R` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\x93WP`\0``R`@RP`\x01a\x05rV[P[`\0``R\x80`@Rc\x16&\xBA~`\xE0\x1B\x80\x82R\x84`\x04\x83\x01R`$\x82\x01`@\x81R\x84Q` \x01\x80`D\x85\x01\x82\x88`\x04Z\xFAPP` \x81`D=\x01\x85\x8AZ\xFA\x90Q\x90\x91\x14\x16\x91PP\x93\x92PPPV[`\0\x7F\x7F\xFF\xFF\xFF\x80\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDEs}V\xD3\x8B\xCFBy\xDC\xE5a~1\x92\xA8\x84`\xA0\x01Q\x11\x15a\x14\x1AWP`\0a\x17KV[``\x84\x01Q`\0\x90a\x14=\x90a\x141\x81`\x15a1LV[` \x88\x01Q\x91\x90a\x18bV[\x90P\x7F\xFF\x1A*\x91v\xD6P\xE4\xA9\x9D\xED\xB5\x8F\x17\x93\095\x13\x05y\xFE\x17\xB5\xA3\xF6\x98\xAC[\0\xE64\x81\x80Q\x90` \x01 \x14a\x14wW`\0\x91PPa\x17KV[`\0a\x14\x85\x88`\x01\x80a\x18\xC8V[`@Q` \x01a\x14\x95\x91\x90a1_V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x14\xCD\x87`@\x01Q\x83Q\x89`@\x01Qa\x14\xC1\x91\x90a1LV[` \x8A\x01Q\x91\x90a\x18bV[\x90P\x81\x80Q\x90` \x01 \x81\x80Q\x90` \x01 \x14a\x14\xF0W`\0\x93PPPPa\x17KV[\x86Q\x80Q`\x01`\xF8\x1B\x91\x82\x91` \x90\x81\x10a\x15\rWa\x15\ra,\xB5V[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14a\x15.W`\0\x93PPPPa\x17KV[\x87\x80\x15a\x15fWP\x86Q\x80Q`\x01`\xFA\x1B\x91\x82\x91` \x90\x81\x10a\x15SWa\x15Sa,\xB5V[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14\x15[\x15a\x15wW`\0\x93PPPPa\x17KV[`\0`\x02\x88` \x01Q`@Qa\x15\x8D\x91\x90a,\x99V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x15\xAAW=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xCD\x91\x90a1\xA0V[\x90P`\0`\x02\x89`\0\x01Q\x83`@Q` \x01a\x15\xEA\x92\x91\x90a1\xB9V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16\x04\x91a,\x99V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16!W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16D\x91\x90a1\xA0V[`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x93\x90\x93R``\x83\x01R\x91\x81\x01\x8B\x90R\x90\x81\x01\x89\x90R\x90\x91P`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80a\x01\0`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x16\xAA\x91\x90a,\x99V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x16\xE5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x16\xEAV[``\x91P[P\x80Q\x91\x93P\x91P\x15\x15\x82\x80\x15a\x16\xFEWP\x80[\x15a\x17*W\x81\x80` \x01\x90Q\x81\x01\x90a\x17\x17\x91\x90a1\xA0V[`\x01\x14\x99PPPPPPPPPPa\x17KV[a\x17?\x85\x8E`\x80\x01Q\x8F`\xA0\x01Q\x8F\x8Fa\x19\xBDV[\x99PPPPPPPPPP[\x95\x94PPPPPV[``\x815` \x83\x015`\0a\x17ta\x17o`@\x87\x01\x87a,\xE1V[a\x1A\xA0V[\x90P`\0a\x17\x88a\x17o``\x88\x01\x88a,\xE1V[\x90P`\x80\x86\x015`\xA0\x87\x015`\xC0\x88\x015`\xE0\x89\x015a\x01\0\x8A\x015`\0a\x17\xB7a\x17oa\x01 \x8E\x01\x8Ea,\xE1V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x9C\x90\x9C\x16` \x8D\x01R\x8B\x81\x01\x9A\x90\x9AR``\x8B\x01\x98\x90\x98RP`\x80\x89\x01\x95\x90\x95R`\xA0\x88\x01\x93\x90\x93R`\xC0\x87\x01\x91\x90\x91R`\xE0\x86\x01Ra\x01\0\x85\x01Ra\x01 \x84\x01Ra\x01@\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81Ra\x01`\x90\x92\x01\x90R\x92\x91PPV[`@\x80Q\x7F\x9BI=\"!\x05\xFE\xE7\xDF\x16:\xB5\xD5\x7F\x0B\xF1\xFF\xD2\xDA\x04\xDD_\xAF\xBE\x10\xB5LA\xC1\xAD\xC6W` \x82\x01R\x90\x81\x01\x82\x90R`\0\x90``\x01a\t4V[``\x83Q\x82\x81\x11a\x18qW\x80\x92P[\x83\x81\x11a\x18|W\x80\x93P[P\x81\x83\x10\x15a\x05rWP`@Q\x82\x82\x03\x80\x82R\x93\x83\x01\x93`\x1F\x19`\x1F\x82\x01\x81\x16[\x86\x81\x01Q\x84\x82\x01R\x81\x01\x80a\x18\x9DWP`\0\x83\x83\x01` \x01R`?\x90\x91\x01\x16\x81\x01`@R\x93\x92PPPV[``\x83Q\x80\x15a\x08\x14W`\x03`\x02\x82\x01\x04`\x02\x1B`@Q\x92P\x7FABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`\x1FRa\x06p\x85\x15\x02\x7Fghijklmnopqrstuvwxyz0123456789-_\x18`?R` \x83\x01\x81\x81\x01\x83\x88` \x01\x01\x80Q`\0\x82R[`\x03\x8A\x01\x99P\x89Q`?\x81`\x12\x1C\x16Q`\0S`?\x81`\x0C\x1C\x16Q`\x01S`?\x81`\x06\x1C\x16Q`\x02S`?\x81\x16Q`\x03SP`\0Q\x84R`\x04\x84\x01\x93P\x82\x84\x10a\x19DW\x90R` \x01`@Ra==`\xF0\x1B`\x03\x84\x06`\x02\x04\x80\x83\x03\x91\x90\x91R`\0\x86\x15\x15\x90\x91\x02\x91\x82\x90\x03R\x90\x03\x82RP\x93\x92PPPV[`\0\x84\x15\x80a\x19\xDAWP`\0\x80Q` a1\xEF\x839\x81Q\x91R\x85\x10\x15[\x80a\x19\xE3WP\x83\x15[\x80a\x19\xFCWP`\0\x80Q` a1\xEF\x839\x81Q\x91R\x84\x10\x15[\x15a\x1A\tWP`\0a\x17KV[a\x1A\x13\x83\x83a\x1A\xB3V[a\x1A\x1FWP`\0a\x17KV[`\0a\x1A*\x85a\x1B\xADV[\x90P`\0`\0\x80Q` a1\xEF\x839\x81Q\x91R\x82\x89\t\x90P`\0`\0\x80Q` a1\xEF\x839\x81Q\x91R\x83\x89\t\x90P`\0a\x1Af\x87\x87\x85\x85a\x1C\x1FV[\x90P`\0\x80Q` a1\xEF\x839\x81Q\x91Ra\x1A\x8F\x8A`\0\x80Q` a1\xEF\x839\x81Q\x91Ra1\xDBV[\x82\x08\x15\x9A\x99PPPPPPPPPPV[`\0`@Q\x82\x80\x85\x837\x90 \x93\x92PPPV[`\0\x82\x15\x80\x15a\x1A\xC1WP\x81\x15[\x80a\x1A\xD9WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x14[\x80a\x1A\xF1WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x14[\x15a\x1A\xFEWP`\0a\x05\x01V[`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x90P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x7F\xFF\xFF\xFF\xFF\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x87\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\t\x08\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x7FZ\xC65\xD8\xAA:\x93\xE7\xB3\xEB\xBDUv\x98\x86\xBCe\x1D\x06\xB0\xCCS\xB0\xF6;\xCE<>'\xD2`K\x82\x08\x91\x90\x91\x14\x94\x93PPPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x7F\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%O`\x80\x82\x01R`\0\x80Q` a1\xEF\x839\x81Q\x91R`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C\x18W`\0\x80\xFD[Q\x92\x91PPV[`\0\x80\x80\x80`\xFF\x81\x80\x88\x15\x80\x15a\x1C4WP\x87\x15[\x15a\x1CHW`\0\x96PPPPPPPa\"\xE1V[a\x1C\x94\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x8D\x8Da\"\xE9V[\x90\x92P\x90P\x81\x15\x80\x15a\x1C\xA5WP\x80\x15[\x15a\x1C\xD3W`\0\x80Q` a1\xEF\x839\x81Q\x91R\x88`\0\x80Q` a1\xEF\x839\x81Q\x91R\x03\x8A\x08\x98P`\0\x97P[`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01[\x80a\x1D\x06W`\x01\x84\x03\x93P`\x01\x8A\x85\x1C\x16`\x01\x8A\x86\x1C\x16`\x01\x1B\x01\x90Pa\x1C\xE4V[P`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01\x95P`\x01\x86\x03a\x1DhW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x96P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x93P[`\x02\x86\x03a\x1DwW\x8A\x96P\x89\x93P[`\x03\x86\x03a\x1D\x86W\x81\x96P\x80\x93P[`\x01\x83\x03\x92P`\x01\x95P`\x01\x94P[\x82`\0\x19\x11\x15a\"jW`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x02\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8A\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x84\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x8D\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08\t`\x03\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x85\t\x98P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x84\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x08\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\x82\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x87\t\x08\x97P`\x01\x8D\x88\x1C\x16`\x01\x8D\x89\x1C\x16`\x01\x1B\x01\x90P\x80a\x1F\x12W\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x97PPPPPa\"_V[`\x01\x81\x03a\x1FaW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x93P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x92P[`\x02\x81\x03a\x1FpW\x8E\x93P\x8D\x92P[`\x03\x81\x03a\x1F\x7FW\x85\x93P\x84\x92P[\x89a\x1F\x98WP\x91\x98P`\x01\x97P\x87\x96P\x94Pa\"_\x90PV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x86\t\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x88\t\x08\x93P\x80a!QW\x83a!QW`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x86\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8D\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x86\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x8F\x08\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81`\x03\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x86\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x85\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x08\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8D`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x85\x08\x83\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8A\x87\t\x85\x08\x98PPPPPPa\"_V[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x83\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8D\t\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8C\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8E\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87\x88\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83\x8D\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x86\x08\t\x08\x9APPPP\x80\x9APPPPP[`\x01\x83\x03\x92Pa\x1D\x95V[`@Q\x86``\x82\x01R` \x81R` \x80\x82\x01R` `@\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\"\xC4W`\0\x80\xFD[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81Q\x89\t\x97PPPPPPPP[\x94\x93PPPPV[`\0\x80\x80\x80\x86a#\0W\x85\x85\x93P\x93PPPa#nV[\x84a#\x12W\x87\x87\x93P\x93PPPa#nV[\x85\x88\x14\x80\x15a# WP\x84\x87\x14[\x15a#AWa#2\x88\x88`\x01\x80a#wV[\x92\x9AP\x90\x98P\x92P\x90Pa#[V[a#P\x88\x88`\x01\x80\x8A\x8Aa$\xD2V[\x92\x9AP\x90\x98P\x92P\x90P[a#g\x88\x88\x84\x84a&VV[\x93P\x93PPP[\x94P\x94\x92PPPV[`\0\x80`\0\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x02\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x83\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x8B\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8C\x08\t`\x03\t\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x89\t\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x83\x08\x87\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x84\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x88\x85\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x89\x08\x92P\x94P\x94P\x94P\x94\x90PV[`\0\x80`\0\x80\x88`\0\x03a$\xF1WP\x84\x92P\x83\x91P`\x01\x90P\x80a&IV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x98\x89\x03\x98\x89\x81\x89\x88\t\x08\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x89\t\x08\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x87\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x89\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x88\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8B\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84\x8B\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\t\x08\x92P[\x96P\x96P\x96P\x96\x92PPPV[`\0\x80`\0a&d\x84a&\xC3V[\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x87\t\x91P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x87\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x93PPP\x94P\x94\x92PPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C\x18W`\0\x80\xFD[P\x80Ta'+\x90a.\x06V[`\0\x82U\x80`\x1F\x10a';WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05<\x91\x90[\x80\x82\x11\x15a\t\xADW`\0\x81U`\x01\x01a'UV[`\0\x80`@\x83\x85\x03\x12\x15a'|W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a'\xA2W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a'\xB9W`\0\x80\xFD[a\x05r\x82a'\x8BV[`\0\x80\x83`\x1F\x84\x01\x12a'\xD4W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a'\xEBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a(\x03W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a(\x1FW`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a(W`\0\x80\xFD[Pa\x01\x82a\x02M6`\x04a'iV[a\x05\xB4V[a\x01\x82a\x02`6`\x04a)\xB8V[a\x05\xDDV[a\x02xa\x02s6`\x04a*\x12V[a\x06\xE1V[`@Q\x90\x81R` \x01a\x01\xB0V[a\x01\x82a\x02\x946`\x04a*_V[a\x08\x1CV[4\x80\x15a\x02\xA5W`\0\x80\xFD[Pa\x02xa\x02\xB46`\x04a*\x98V[a\t\0V[4\x80\x15a\x02\xC5W`\0\x80\xFD[Pa\x02xa\tQV[4\x80\x15a\x02\xDAW`\0\x80\xFD[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xB0V[a\x01\x82a\x03$6`\x04a)\xB8V[a\t\xB1V[4\x80\x15a\x035W`\0\x80\xFD[Pa\x01\x82a\x03D6`\x04a*\xCCV[a\t\xF1V[4\x80\x15a\x03UW`\0\x80\xFD[Pa\x03^a\n\xDEV[`@Qa\x01\xB0\x97\x96\x95\x94\x93\x92\x91\x90a+5V[4\x80\x15a\x03}W`\0\x80\xFD[Pa\x02xa!\x05\x81V[4\x80\x15a\x03\x93W`\0\x80\xFD[Pa\x03\xA7a\x03\xA26`\x04a*\xCCV[a\x0B\x05V[`@Qa\x01\xB0\x91\x90a+\xCEV[4\x80\x15a\x03\xC0W`\0\x80\xFD[Pa\x01\xA4a\x03\xCF6`\x04a+\xE1V[a\x0B\xC6V[4\x80\x15a\x03\xE0W`\0\x80\xFD[Pa\x01\xA4a\x03\xEF6`\x04a'\xA7V[a\x0CBV[4\x80\x15a\x04\0W`\0\x80\xFD[Ps_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89a\x02\xFEV[a\x01\x82a\x04)6`\x04a,\x0BV[a\x0C\x88V[a\x01\x82a\x04<6`\x04a,dV[a\x0C\xECV[4\x80\x15a\x04MW`\0\x80\xFD[Pa\x02xa\x04\\6`\x04a*\xCCV[a\r\xADV[4\x80\x15a\x04mW`\0\x80\xFD[P`\0\x80Q` a2\x0F\x839\x81Q\x91RTa\x02xV[4\x80\x15a\x04\x8FW`\0\x80\xFD[Pa\x02xa\r\xB8V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x04\xEB\x91a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P[\x92\x91PPV[a\x05\x0Fa\x0E>V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x05<\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x0EpV[PV[`\0a\x05Ta\x05M\x85a\r\xADV[\x84\x84a\x0E\x9BV[\x15a\x05gWPc\x0B\x13]?`\xE1\x1Ba\x05rV[P`\x01`\x01`\xE0\x1B\x03\x19[\x93\x92PPPV[`\0`\0\x80Q` a2\x0F\x839\x81Q\x91R`\x02\x01\x82`@Qa\x05\x9B\x91\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x05\xBCa\x0E>V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x05\xD9\x90``\x01a\x05(V[PPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x06\0Wa\x06\0a\x0E>V[`\0[\x81\x81\x10\x15a\x06\xDCWa\x06\xD4\x83\x83\x83\x81\x81\x10a\x06 Wa\x06 a,\xB5V[\x90P` \x02\x81\x01\x90a\x062\x91\x90a,\xCBV[a\x06@\x90` \x81\x01\x90a'\xA7V[\x84\x84\x84\x81\x81\x10a\x06RWa\x06Ra,\xB5V[\x90P` \x02\x81\x01\x90a\x06d\x91\x90a,\xCBV[` \x015\x85\x85\x85\x81\x81\x10a\x06zWa\x06za,\xB5V[\x90P` \x02\x81\x01\x90a\x06\x8C\x91\x90a,\xCBV[a\x06\x9A\x90`@\x81\x01\x90a,\xE1V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[`\x01\x01a\x06\x03V[PPPV[`\x003s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x07\x16W`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x85\x015`@\x1C`\x04a\x07.``\x88\x01\x88a,\xE1V[\x90P\x10\x15\x80\x15a\x07rWPa\x07F``\x87\x01\x87a,\xE1V[a\x07U\x91`\x04\x91`\0\x91a-'V[a\x07^\x91a-QV[`\x01`\x01`\xE0\x1B\x03\x19\x16c\xBFk\xA1\xFC`\xE0\x1B\x14[\x15a\x07\xB1Wa\x07\x80\x86a\t\0V[\x94Pa!\x05\x81\x14a\x07\xACW`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[a\x07\xD6V[a!\x05\x81\x03a\x07\xD6W`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x07\xA3V[a\x07\xED\x85a\x07\xE8a\x01@\x89\x01\x89a,\xE1V[a\x0E\x9BV[\x15a\x07\xFCW`\0\x92PPa\x08\x02V[`\x01\x92PP[\x80\x15a\x08\x14W`\08`\08\x843Z\xF1P[P\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\x08RWc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[a\x08[\x84a\x10 V[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x08\xADWcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\x08\xFAW`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\x08\xF8W=`\0\x82>=\x81\xFD[P[PPPPV[`\0a\t\x0B\x82a\x10(V[`@\x80Q` \x81\x01\x92\x90\x92Rs_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x90\x82\x01R``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\t\x89Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91P[P\x90V[`\0\x80Q` a2\x0F\x839\x81Q\x91RT\x15a\t\xDFW`@Qc\x02\xEDT=`\xE5\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xD9a\t\xEC\x82\x84a-\x81V[a\x10AV[a\t\xF9a\x0E>V[`\0a\n\x04\x82a\x0B\x05V[\x90P\x80Q`\0\x03a\n+W`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01a\x07\xA3V[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\n[\x90\x83\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\n\x87`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\n\xA2\x91a'\x1FV[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\n\xD2\x91\x90a+\xCEV[`@Q\x80\x91\x03\x90\xA2PPV[`\x0F`\xF8\x1B``\x80`\0\x80\x80\x83a\n\xF3a\x11\x93V[\x97\x98\x90\x97\x96PF\x95P0\x94P\x91\x92P\x90V[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x0BA\x90a.\x06V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0Bm\x90a.\x06V[\x80\x15a\x0B\xBAW\x80`\x1F\x10a\x0B\x8FWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0B\xBAV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0B\x9DW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c)V^;`\xE0\x1B\x14\x80a\x0B\xF7WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x03\xC3\xCF\xC9`\xE2\x1B\x14[\x80a\x0C\x12WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c9o\x1D\xAD`\xE1\x1B\x14[\x80a\x0C-WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c'\x8FyC`\xE1\x1B\x14[\x15a\x0C:WP`\x01\x91\x90PV[P`\0\x91\x90PV[`\0`\0\x80Q` a2\x0F\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\x9B\x91a,\x99V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x0C\xABWa\x0C\xABa\x0E>V[a\x08\xFA\x84\x84\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x1FW`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r.`\x04\x82\x84\x86a-'V[a\r7\x91a-QV[\x90Pa\rB\x81a\x0B\xC6V[a\rkW`@Qc\x1D\x83p\xA3`\xE1\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`\x04\x82\x01R`$\x01a\x07\xA3V[a\x06\xDC0`\0\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0F\xB0\x92PPPV[`\0a\x05\x01\x82a\x11\xDAV[`\0\x80`\0a\r\xC5a\x11\x93V[\x81Q` \x80\x84\x01\x91\x90\x91 \x82Q\x82\x84\x01 `@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x94\x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R\x91\x93P\x91P`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x90V[a\x0EG3a\x0CBV[\x80a\x0EQWP30\x14[\x15a\x0EXWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05<\x81`\0\x80Q` a2\x0F\x839\x81Q\x91R[\x80T\x90`\0a\x0E\x92\x83a.PV[\x91\x90PUa\x12\x10V[`\0\x80a\x0E\xAA\x83\x85\x01\x85a.iV[\x90P`\0a\x0E\xBB\x82`\0\x01Qa\x0B\x05V[\x90P\x80Q` \x03a\x0F\x1AW`\x01`\x01`\xA0\x1B\x03a\x0E\xD7\x82a.\xF5V[\x11\x15a\x0E\xF8W\x80`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\0` \x82\x01Q\x90Pa\x0F\x10\x81\x88\x85` \x01Qa\x12\xDFV[\x93PPPPa\x05rV[\x80Q`@\x03a\x0F\x95W`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x0F:\x91\x90a/\x19V[\x91P\x91P`\0\x84` \x01Q\x80` \x01\x90Q\x81\x01\x90a\x0FX\x91\x90a/\x82V[\x90Pa\x0F\x89\x89`@Q` \x01a\x0Fp\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\0\x83\x86\x86a\x13\xE4V[\x95PPPPPPa\x05rV[\x80`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84\x84`@Qa\x0F\xCC\x91\x90a,\x99V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x10\tW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x10\x0EV[``\x91P[P\x91P\x91P\x81a\x08\xF8W\x80Q` \x82\x01\xFD[a\x05V[`\0a\x103\x82a\x17TV[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x81Q\x81\x10\x15a\x05\xD9W\x81\x81\x81Q\x81\x10a\x10_Wa\x10_a,\xB5V[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x10\x93WP\x81\x81\x81Q\x81\x10a\x10\x85Wa\x10\x85a,\xB5V[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x10\xCCW\x81\x81\x81Q\x81\x10a\x10\xAAWa\x10\xAAa,\xB5V[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[\x81\x81\x81Q\x81\x10a\x10\xDEWa\x10\xDEa,\xB5V[` \x02` \x01\x01QQ` \x14\x80\x15a\x11 WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x11\rWa\x11\ra,\xB5V[` \x02` \x01\x01Qa\x11\x1E\x90a.\xF5V[\x11[\x15a\x11YW\x81\x81\x81Q\x81\x10a\x117Wa\x117a,\xB5V[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[a\x11\x8B\x82\x82\x81Q\x81\x10a\x11nWa\x11na,\xB5V[` \x02` \x01\x01Qa\x0E\x84`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\x01\x01a\x10DV[`@\x80Q\x80\x82\x01\x82R`\x15\x81Rt\x10\xDB\xDA[\x98\x98\\\xD9H\x14\xDBX\\\x9D\x08\x15\xD8[\x1B\x19]`Z\x1B` \x80\x83\x01\x91\x90\x91R\x82Q\x80\x84\x01\x90\x93R`\x01\x83R`1`\xF8\x1B\x90\x83\x01R\x91V[`\0a\x11\xE4a\r\xB8V[a\x11\xED\x83a\x18'V[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x92\x90\x92R`B\x82\x01R`b\x01a\t4V[a\x12\x19\x82a\x05yV[\x15a\x129W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x07\xA3\x91\x90a+\xCEV[`\x01`\0\x80Q` a2\x0F\x839\x81Q\x91R`\x02\x01\x83`@Qa\x12[\x91\x90a,\x99V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x12\x91`\0\x80Q` a2\x0F\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x12\xAE\x90\x82a0\x8DV[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\n\xD2\x91\x90a+\xCEV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91`\0\x83\x15a\x05rW`@Q\x83`\0R` \x83\x01Q`@R`@\x83Q\x03a\x13OW`@\x83\x01Q`\x1B\x81`\xFF\x1C\x01` R\x80`\x01\x1B`\x01\x1C``RP` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13MWP`\0``R`@RP`\x01a\x05rV[P[`A\x83Q\x03a\x13\x95W``\x83\x01Q`\0\x1A` R`@\x83\x01Q``R` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\x93WP`\0``R`@RP`\x01a\x05rV[P[`\0``R\x80`@Rc\x16&\xBA~`\xE0\x1B\x80\x82R\x84`\x04\x83\x01R`$\x82\x01`@\x81R\x84Q` \x01\x80`D\x85\x01\x82\x88`\x04Z\xFAPP` \x81`D=\x01\x85\x8AZ\xFA\x90Q\x90\x91\x14\x16\x91PP\x93\x92PPPV[`\0\x7F\x7F\xFF\xFF\xFF\x80\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDEs}V\xD3\x8B\xCFBy\xDC\xE5a~1\x92\xA8\x84`\xA0\x01Q\x11\x15a\x14\x1AWP`\0a\x17KV[``\x84\x01Q`\0\x90a\x14=\x90a\x141\x81`\x15a1LV[` \x88\x01Q\x91\x90a\x18bV[\x90P\x7F\xFF\x1A*\x91v\xD6P\xE4\xA9\x9D\xED\xB5\x8F\x17\x93\095\x13\x05y\xFE\x17\xB5\xA3\xF6\x98\xAC[\0\xE64\x81\x80Q\x90` \x01 \x14a\x14wW`\0\x91PPa\x17KV[`\0a\x14\x85\x88`\x01\x80a\x18\xC8V[`@Q` \x01a\x14\x95\x91\x90a1_V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x14\xCD\x87`@\x01Q\x83Q\x89`@\x01Qa\x14\xC1\x91\x90a1LV[` \x8A\x01Q\x91\x90a\x18bV[\x90P\x81\x80Q\x90` \x01 \x81\x80Q\x90` \x01 \x14a\x14\xF0W`\0\x93PPPPa\x17KV[\x86Q\x80Q`\x01`\xF8\x1B\x91\x82\x91` \x90\x81\x10a\x15\rWa\x15\ra,\xB5V[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14a\x15.W`\0\x93PPPPa\x17KV[\x87\x80\x15a\x15fWP\x86Q\x80Q`\x01`\xFA\x1B\x91\x82\x91` \x90\x81\x10a\x15SWa\x15Sa,\xB5V[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14\x15[\x15a\x15wW`\0\x93PPPPa\x17KV[`\0`\x02\x88` \x01Q`@Qa\x15\x8D\x91\x90a,\x99V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x15\xAAW=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xCD\x91\x90a1\xA0V[\x90P`\0`\x02\x89`\0\x01Q\x83`@Q` \x01a\x15\xEA\x92\x91\x90a1\xB9V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16\x04\x91a,\x99V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16!W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16D\x91\x90a1\xA0V[`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x93\x90\x93R``\x83\x01R\x91\x81\x01\x8B\x90R\x90\x81\x01\x89\x90R\x90\x91P`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80a\x01\0`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x16\xAA\x91\x90a,\x99V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x16\xE5W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x16\xEAV[``\x91P[P\x80Q\x91\x93P\x91P\x15\x15\x82\x80\x15a\x16\xFEWP\x80[\x15a\x17*W\x81\x80` \x01\x90Q\x81\x01\x90a\x17\x17\x91\x90a1\xA0V[`\x01\x14\x99PPPPPPPPPPa\x17KV[a\x17?\x85\x8E`\x80\x01Q\x8F`\xA0\x01Q\x8F\x8Fa\x19\xBDV[\x99PPPPPPPPPP[\x95\x94PPPPPV[``\x815` \x83\x015`\0a\x17ta\x17o`@\x87\x01\x87a,\xE1V[a\x1A\xA0V[\x90P`\0a\x17\x88a\x17o``\x88\x01\x88a,\xE1V[\x90P`\x80\x86\x015`\xA0\x87\x015`\xC0\x88\x015`\xE0\x89\x015a\x01\0\x8A\x015`\0a\x17\xB7a\x17oa\x01 \x8E\x01\x8Ea,\xE1V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x9C\x90\x9C\x16` \x8D\x01R\x8B\x81\x01\x9A\x90\x9AR``\x8B\x01\x98\x90\x98RP`\x80\x89\x01\x95\x90\x95R`\xA0\x88\x01\x93\x90\x93R`\xC0\x87\x01\x91\x90\x91R`\xE0\x86\x01Ra\x01\0\x85\x01Ra\x01 \x84\x01Ra\x01@\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81Ra\x01`\x90\x92\x01\x90R\x92\x91PPV[`@\x80Q\x7F\x9BI=\"!\x05\xFE\xE7\xDF\x16:\xB5\xD5\x7F\x0B\xF1\xFF\xD2\xDA\x04\xDD_\xAF\xBE\x10\xB5LA\xC1\xAD\xC6W` \x82\x01R\x90\x81\x01\x82\x90R`\0\x90``\x01a\t4V[``\x83Q\x82\x81\x11a\x18qW\x80\x92P[\x83\x81\x11a\x18|W\x80\x93P[P\x81\x83\x10\x15a\x05rWP`@Q\x82\x82\x03\x80\x82R\x93\x83\x01\x93`\x1F\x19`\x1F\x82\x01\x81\x16[\x86\x81\x01Q\x84\x82\x01R\x81\x01\x80a\x18\x9DWP`\0\x83\x83\x01` \x01R`?\x90\x91\x01\x16\x81\x01`@R\x93\x92PPPV[``\x83Q\x80\x15a\x08\x14W`\x03`\x02\x82\x01\x04`\x02\x1B`@Q\x92P\x7FABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`\x1FRa\x06p\x85\x15\x02\x7Fghijklmnopqrstuvwxyz0123456789-_\x18`?R` \x83\x01\x81\x81\x01\x83\x88` \x01\x01\x80Q`\0\x82R[`\x03\x8A\x01\x99P\x89Q`?\x81`\x12\x1C\x16Q`\0S`?\x81`\x0C\x1C\x16Q`\x01S`?\x81`\x06\x1C\x16Q`\x02S`?\x81\x16Q`\x03SP`\0Q\x84R`\x04\x84\x01\x93P\x82\x84\x10a\x19DW\x90R` \x01`@Ra==`\xF0\x1B`\x03\x84\x06`\x02\x04\x80\x83\x03\x91\x90\x91R`\0\x86\x15\x15\x90\x91\x02\x91\x82\x90\x03R\x90\x03\x82RP\x93\x92PPPV[`\0\x84\x15\x80a\x19\xDAWP`\0\x80Q` a1\xEF\x839\x81Q\x91R\x85\x10\x15[\x80a\x19\xE3WP\x83\x15[\x80a\x19\xFCWP`\0\x80Q` a1\xEF\x839\x81Q\x91R\x84\x10\x15[\x15a\x1A\tWP`\0a\x17KV[a\x1A\x13\x83\x83a\x1A\xB3V[a\x1A\x1FWP`\0a\x17KV[`\0a\x1A*\x85a\x1B\xADV[\x90P`\0`\0\x80Q` a1\xEF\x839\x81Q\x91R\x82\x89\t\x90P`\0`\0\x80Q` a1\xEF\x839\x81Q\x91R\x83\x89\t\x90P`\0a\x1Af\x87\x87\x85\x85a\x1C\x1FV[\x90P`\0\x80Q` a1\xEF\x839\x81Q\x91Ra\x1A\x8F\x8A`\0\x80Q` a1\xEF\x839\x81Q\x91Ra1\xDBV[\x82\x08\x15\x9A\x99PPPPPPPPPPV[`\0`@Q\x82\x80\x85\x837\x90 \x93\x92PPPV[`\0\x82\x15\x80\x15a\x1A\xC1WP\x81\x15[\x80a\x1A\xD9WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x14[\x80a\x1A\xF1WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x14[\x15a\x1A\xFEWP`\0a\x05\x01V[`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x90P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x7F\xFF\xFF\xFF\xFF\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x87\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\t\x08\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x7FZ\xC65\xD8\xAA:\x93\xE7\xB3\xEB\xBDUv\x98\x86\xBCe\x1D\x06\xB0\xCCS\xB0\xF6;\xCE<>'\xD2`K\x82\x08\x91\x90\x91\x14\x94\x93PPPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x7F\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%O`\x80\x82\x01R`\0\x80Q` a1\xEF\x839\x81Q\x91R`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C\x18W`\0\x80\xFD[Q\x92\x91PPV[`\0\x80\x80\x80`\xFF\x81\x80\x88\x15\x80\x15a\x1C4WP\x87\x15[\x15a\x1CHW`\0\x96PPPPPPPa\"\xE1V[a\x1C\x94\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x8D\x8Da\"\xE9V[\x90\x92P\x90P\x81\x15\x80\x15a\x1C\xA5WP\x80\x15[\x15a\x1C\xD3W`\0\x80Q` a1\xEF\x839\x81Q\x91R\x88`\0\x80Q` a1\xEF\x839\x81Q\x91R\x03\x8A\x08\x98P`\0\x97P[`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01[\x80a\x1D\x06W`\x01\x84\x03\x93P`\x01\x8A\x85\x1C\x16`\x01\x8A\x86\x1C\x16`\x01\x1B\x01\x90Pa\x1C\xE4V[P`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01\x95P`\x01\x86\x03a\x1DhW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x96P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x93P[`\x02\x86\x03a\x1DwW\x8A\x96P\x89\x93P[`\x03\x86\x03a\x1D\x86W\x81\x96P\x80\x93P[`\x01\x83\x03\x92P`\x01\x95P`\x01\x94P[\x82`\0\x19\x11\x15a\"jW`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x02\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8A\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x84\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x8D\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08\t`\x03\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x85\t\x98P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x84\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x08\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\x82\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x87\t\x08\x97P`\x01\x8D\x88\x1C\x16`\x01\x8D\x89\x1C\x16`\x01\x1B\x01\x90P\x80a\x1F\x12W\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x97PPPPPa\"_V[`\x01\x81\x03a\x1FaW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x93P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x92P[`\x02\x81\x03a\x1FpW\x8E\x93P\x8D\x92P[`\x03\x81\x03a\x1F\x7FW\x85\x93P\x84\x92P[\x89a\x1F\x98WP\x91\x98P`\x01\x97P\x87\x96P\x94Pa\"_\x90PV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x86\t\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x88\t\x08\x93P\x80a!QW\x83a!QW`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x86\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8D\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x86\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x8F\x08\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81`\x03\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x86\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x85\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x08\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8D`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x85\x08\x83\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8A\x87\t\x85\x08\x98PPPPPPa\"_V[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x83\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8D\t\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8C\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8E\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87\x88\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83\x8D\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x86\x08\t\x08\x9APPPP\x80\x9APPPPP[`\x01\x83\x03\x92Pa\x1D\x95V[`@Q\x86``\x82\x01R` \x81R` \x80\x82\x01R` `@\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\"\xC4W`\0\x80\xFD[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81Q\x89\t\x97PPPPPPPP[\x94\x93PPPPV[`\0\x80\x80\x80\x86a#\0W\x85\x85\x93P\x93PPPa#nV[\x84a#\x12W\x87\x87\x93P\x93PPPa#nV[\x85\x88\x14\x80\x15a# WP\x84\x87\x14[\x15a#AWa#2\x88\x88`\x01\x80a#wV[\x92\x9AP\x90\x98P\x92P\x90Pa#[V[a#P\x88\x88`\x01\x80\x8A\x8Aa$\xD2V[\x92\x9AP\x90\x98P\x92P\x90P[a#g\x88\x88\x84\x84a&VV[\x93P\x93PPP[\x94P\x94\x92PPPV[`\0\x80`\0\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x02\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x83\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x8B\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8C\x08\t`\x03\t\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x89\t\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x83\x08\x87\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x84\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x88\x85\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x89\x08\x92P\x94P\x94P\x94P\x94\x90PV[`\0\x80`\0\x80\x88`\0\x03a$\xF1WP\x84\x92P\x83\x91P`\x01\x90P\x80a&IV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x98\x89\x03\x98\x89\x81\x89\x88\t\x08\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x89\t\x08\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x87\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x89\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x88\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8B\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84\x8B\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\t\x08\x92P[\x96P\x96P\x96P\x96\x92PPPV[`\0\x80`\0a&d\x84a&\xC3V[\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x87\t\x91P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x87\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x93PPP\x94P\x94\x92PPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C\x18W`\0\x80\xFD[P\x80Ta'+\x90a.\x06V[`\0\x82U\x80`\x1F\x10a';WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05<\x91\x90[\x80\x82\x11\x15a\t\xADW`\0\x81U`\x01\x01a'UV[`\0\x80`@\x83\x85\x03\x12\x15a'|W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a'\xA2W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a'\xB9W`\0\x80\xFD[a\x05r\x82a'\x8BV[`\0\x80\x83`\x1F\x84\x01\x12a'\xD4W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a'\xEBW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a(\x03W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a(\x1FW`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a((::ethers::contract::Contract); - impl ::core::clone::Clone for CoinbaseSmartWallet { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for CoinbaseSmartWallet { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for CoinbaseSmartWallet { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for CoinbaseSmartWallet { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(CoinbaseSmartWallet)) - .field(&self.address()) - .finish() - } - } - impl CoinbaseSmartWallet { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - COINBASESMARTWALLET_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - COINBASESMARTWALLET_ABI.clone(), - COINBASESMARTWALLET_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `REPLAYABLE_NONCE_KEY` (0x88ce4c7c) function - pub fn replayable_nonce_key( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([136, 206, 76, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerAddress` (0x0f0f3f24) function - pub fn add_owner_address( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([15, 15, 63, 36], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerPublicKey` (0x29565e3b) function - pub fn add_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([41, 86, 94, 59], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `canSkipChainIdValidation` (0x9f9bcb34) function - pub fn can_skip_chain_id_validation( - &self, - function_selector: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([159, 155, 203, 52], function_selector) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `domainSeparator` (0xf698da25) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([246, 152, 218, 37], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `eip712Domain` (0x84b0196e) function - pub fn eip_712_domain( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - [u8; 1], - ::std::string::String, - ::std::string::String, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - [u8; 32], - ::std::vec::Vec<::ethers::core::types::U256>, - ), - > { - self.0 - .method_hash([132, 176, 25, 110], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `entryPoint` (0xb0d691fe) function - pub fn entry_point( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([176, 214, 145, 254], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `execute` (0xb61d27f6) function - pub fn execute( - &self, - target: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([182, 29, 39, 246], (target, value, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `executeBatch` (0x34fcd5be) function - pub fn execute_batch( - &self, - calls: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([52, 252, 213, 190], calls) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `executeWithoutChainIdValidation` (0xbf6ba1fc) function - pub fn execute_without_chain_id_validation( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([191, 107, 161, 252], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getUserOpHashWithoutChainId` (0x4f6e7f22) function - pub fn get_user_op_hash_without_chain_id( - &self, - user_op: UserOperation, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 110, 127, 34], (user_op,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `implementation` (0x5c60da1b) function - pub fn implementation( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([92, 96, 218, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x6f2de70e) function - pub fn initialize( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([111, 45, 231, 14], owners) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerAddress` (0xa2e1a8d8) function - pub fn is_owner_address( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 225, 168, 216], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerBytes` (0x1ca5393f) function - pub fn is_owner_bytes( - &self, - account: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([28, 165, 57, 63], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerPublicKey` (0x066a1eb7) function - pub fn is_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 106, 30, 183], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isValidSignature` (0x1626ba7e) function - pub fn is_valid_signature( - &self, - hash: [u8; 32], - signature: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 38, 186, 126], (hash, signature)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nextOwnerIndex` (0xd948fd2e) function - pub fn next_owner_index( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([217, 72, 253, 46], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerAtIndex` (0x8ea69029) function - pub fn owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([142, 166, 144, 41], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `proxiableUUID` (0x52d1902d) function - pub fn proxiable_uuid(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 209, 144, 45], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `removeOwnerAtIndex` (0x72de3b5a) function - pub fn remove_owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([114, 222, 59, 90], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `replaySafeHash` (0xce1506be) function - pub fn replay_safe_hash( - &self, - hash: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([206, 21, 6, 190], hash) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function - pub fn upgrade_to_and_call( - &self, - new_implementation: ::ethers::core::types::Address, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 30, 242, 134], (new_implementation, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateUserOp` (0x3a871cdd) function - pub fn validate_user_op( - &self, - user_op: UserOperation, - user_op_hash: [u8; 32], - missing_account_funds: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [58, 135, 28, 221], - (user_op, user_op_hash, missing_account_funds), - ) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `AddOwner` event - pub fn add_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AddOwnerFilter> { - self.0.event() - } - ///Gets the contract's `RemoveOwner` event - pub fn remove_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RemoveOwnerFilter> - { - self.0.event() - } - ///Gets the contract's `Upgraded` event - pub fn upgraded_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, CoinbaseSmartWalletEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for CoinbaseSmartWallet - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AlreadyOwner` with signature `AlreadyOwner(bytes)` and selector `0x8d16255a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "AlreadyOwner", abi = "AlreadyOwner(bytes)")] - pub struct AlreadyOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `Initialized` with signature `Initialized()` and selector `0x5daa87a0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Initialized", abi = "Initialized()")] - pub struct Initialized; - ///Custom Error type `InvalidEthereumAddressOwner` with signature `InvalidEthereumAddressOwner(bytes)` and selector `0xbff1ac65` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidEthereumAddressOwner", - abi = "InvalidEthereumAddressOwner(bytes)" - )] - pub struct InvalidEthereumAddressOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidNonceKey` with signature `InvalidNonceKey(uint256)` and selector `0x2ef37813` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidNonceKey", abi = "InvalidNonceKey(uint256)")] - pub struct InvalidNonceKey { - pub key: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidOwnerBytesLength` with signature `InvalidOwnerBytesLength(bytes)` and selector `0x4eeab722` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidOwnerBytesLength", - abi = "InvalidOwnerBytesLength(bytes)" - )] - pub struct InvalidOwnerBytesLength { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `NoOwnerAtIndex` with signature `NoOwnerAtIndex(uint256)` and selector `0x68188e7a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NoOwnerAtIndex", abi = "NoOwnerAtIndex(uint256)")] - pub struct NoOwnerAtIndex { - pub index: ::ethers::core::types::U256, - } - ///Custom Error type `SelectorNotAllowed` with signature `SelectorNotAllowed(bytes4)` and selector `0x3b06e146` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SelectorNotAllowed", abi = "SelectorNotAllowed(bytes4)")] - pub struct SelectorNotAllowed { - pub selector: [u8; 4], - } - ///Custom Error type `Unauthorized` with signature `Unauthorized()` and selector `0x82b42900` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Unauthorized", abi = "Unauthorized()")] - pub struct Unauthorized; - ///Custom Error type `UnauthorizedCallContext` with signature `UnauthorizedCallContext()` and selector `0x9f03a026` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UnauthorizedCallContext", abi = "UnauthorizedCallContext()")] - pub struct UnauthorizedCallContext; - ///Custom Error type `UpgradeFailed` with signature `UpgradeFailed()` and selector `0x55299b49` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UpgradeFailed", abi = "UpgradeFailed()")] - pub struct UpgradeFailed; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum CoinbaseSmartWalletErrors { - AlreadyOwner(AlreadyOwner), - Initialized(Initialized), - InvalidEthereumAddressOwner(InvalidEthereumAddressOwner), - InvalidNonceKey(InvalidNonceKey), - InvalidOwnerBytesLength(InvalidOwnerBytesLength), - NoOwnerAtIndex(NoOwnerAtIndex), - SelectorNotAllowed(SelectorNotAllowed), - Unauthorized(Unauthorized), - UnauthorizedCallContext(UnauthorizedCallContext), - UpgradeFailed(UpgradeFailed), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for CoinbaseSmartWalletErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AlreadyOwner(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialized(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidEthereumAddressOwner(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidNonceKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidOwnerBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NoOwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SelectorNotAllowed(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Unauthorized(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UnauthorizedCallContext(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UpgradeFailed(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for CoinbaseSmartWalletErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AlreadyOwner(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidEthereumAddressOwner(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidNonceKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidOwnerBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NoOwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SelectorNotAllowed(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Unauthorized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UnauthorizedCallContext(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UpgradeFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for CoinbaseSmartWalletErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector == ::selector() => true, - _ if selector == ::selector() => true, - _ if selector - == ::selector( - ) => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => true, - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for CoinbaseSmartWalletErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AlreadyOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialized(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidEthereumAddressOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidNonceKey(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidOwnerBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::NoOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::SelectorNotAllowed(element) => ::core::fmt::Display::fmt(element, f), - Self::Unauthorized(element) => ::core::fmt::Display::fmt(element, f), - Self::UnauthorizedCallContext(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for CoinbaseSmartWalletErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: AlreadyOwner) -> Self { - Self::AlreadyOwner(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: Initialized) -> Self { - Self::Initialized(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: InvalidEthereumAddressOwner) -> Self { - Self::InvalidEthereumAddressOwner(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: InvalidNonceKey) -> Self { - Self::InvalidNonceKey(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: InvalidOwnerBytesLength) -> Self { - Self::InvalidOwnerBytesLength(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: NoOwnerAtIndex) -> Self { - Self::NoOwnerAtIndex(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: SelectorNotAllowed) -> Self { - Self::SelectorNotAllowed(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: Unauthorized) -> Self { - Self::Unauthorized(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: UnauthorizedCallContext) -> Self { - Self::UnauthorizedCallContext(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletErrors { - fn from(value: UpgradeFailed) -> Self { - Self::UpgradeFailed(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "AddOwner", abi = "AddOwner(uint256,bytes)")] - pub struct AddOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "RemoveOwner", abi = "RemoveOwner(uint256,bytes)")] - pub struct RemoveOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Upgraded", abi = "Upgraded(address)")] - pub struct UpgradedFilter { - #[ethevent(indexed)] - pub implementation: ::ethers::core::types::Address, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum CoinbaseSmartWalletEvents { - AddOwnerFilter(AddOwnerFilter), - RemoveOwnerFilter(RemoveOwnerFilter), - UpgradedFilter(UpgradedFilter), - } - impl ::ethers::contract::EthLogDecode for CoinbaseSmartWalletEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AddOwnerFilter::decode_log(log) { - return Ok(CoinbaseSmartWalletEvents::AddOwnerFilter(decoded)); - } - if let Ok(decoded) = RemoveOwnerFilter::decode_log(log) { - return Ok(CoinbaseSmartWalletEvents::RemoveOwnerFilter(decoded)); - } - if let Ok(decoded) = UpgradedFilter::decode_log(log) { - return Ok(CoinbaseSmartWalletEvents::UpgradedFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for CoinbaseSmartWalletEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradedFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for CoinbaseSmartWalletEvents { - fn from(value: AddOwnerFilter) -> Self { - Self::AddOwnerFilter(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletEvents { - fn from(value: RemoveOwnerFilter) -> Self { - Self::RemoveOwnerFilter(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletEvents { - fn from(value: UpgradedFilter) -> Self { - Self::UpgradedFilter(value) - } - } - ///Container type for all input parameters for the `REPLAYABLE_NONCE_KEY` function with signature `REPLAYABLE_NONCE_KEY()` and selector `0x88ce4c7c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REPLAYABLE_NONCE_KEY", abi = "REPLAYABLE_NONCE_KEY()")] - pub struct ReplayableNonceKeyCall; - ///Container type for all input parameters for the `addOwnerAddress` function with signature `addOwnerAddress(address)` and selector `0x0f0f3f24` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerAddress", abi = "addOwnerAddress(address)")] - pub struct AddOwnerAddressCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `addOwnerPublicKey` function with signature `addOwnerPublicKey(bytes32,bytes32)` and selector `0x29565e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerPublicKey", abi = "addOwnerPublicKey(bytes32,bytes32)")] - pub struct AddOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `canSkipChainIdValidation` function with signature `canSkipChainIdValidation(bytes4)` and selector `0x9f9bcb34` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "canSkipChainIdValidation", - abi = "canSkipChainIdValidation(bytes4)" - )] - pub struct CanSkipChainIdValidationCall { - pub function_selector: [u8; 4], - } - ///Container type for all input parameters for the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "domainSeparator", abi = "domainSeparator()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "eip712Domain", abi = "eip712Domain()")] - pub struct Eip712DomainCall; - ///Container type for all input parameters for the `entryPoint` function with signature `entryPoint()` and selector `0xb0d691fe` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "entryPoint", abi = "entryPoint()")] - pub struct EntryPointCall; - ///Container type for all input parameters for the `execute` function with signature `execute(address,uint256,bytes)` and selector `0xb61d27f6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "execute", abi = "execute(address,uint256,bytes)")] - pub struct ExecuteCall { - pub target: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `executeBatch` function with signature `executeBatch((address,uint256,bytes)[])` and selector `0x34fcd5be` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "executeBatch", abi = "executeBatch((address,uint256,bytes)[])")] - pub struct ExecuteBatchCall { - pub calls: ::std::vec::Vec, - } - ///Container type for all input parameters for the `executeWithoutChainIdValidation` function with signature `executeWithoutChainIdValidation(bytes)` and selector `0xbf6ba1fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "executeWithoutChainIdValidation", - abi = "executeWithoutChainIdValidation(bytes)" - )] - pub struct ExecuteWithoutChainIdValidationCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `getUserOpHashWithoutChainId` function with signature `getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x4f6e7f22` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getUserOpHashWithoutChainId", - abi = "getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))" - )] - pub struct GetUserOpHashWithoutChainIdCall { - pub user_op: UserOperation, - } - ///Container type for all input parameters for the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "implementation", abi = "implementation()")] - pub struct ImplementationCall; - ///Container type for all input parameters for the `initialize` function with signature `initialize(bytes[])` and selector `0x6f2de70e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "initialize", abi = "initialize(bytes[])")] - pub struct InitializeCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - } - ///Container type for all input parameters for the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerAddress", abi = "isOwnerAddress(address)")] - pub struct IsOwnerAddressCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerBytes", abi = "isOwnerBytes(bytes)")] - pub struct IsOwnerBytesCall { - pub account: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerPublicKey", abi = "isOwnerPublicKey(bytes32,bytes32)")] - pub struct IsOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isValidSignature", abi = "isValidSignature(bytes32,bytes)")] - pub struct IsValidSignatureCall { - pub hash: [u8; 32], - pub signature: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nextOwnerIndex", abi = "nextOwnerIndex()")] - pub struct NextOwnerIndexCall; - ///Container type for all input parameters for the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "ownerAtIndex", abi = "ownerAtIndex(uint256)")] - pub struct OwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")] - pub struct ProxiableUUIDCall; - ///Container type for all input parameters for the `removeOwnerAtIndex` function with signature `removeOwnerAtIndex(uint256)` and selector `0x72de3b5a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "removeOwnerAtIndex", abi = "removeOwnerAtIndex(uint256)")] - pub struct RemoveOwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "replaySafeHash", abi = "replaySafeHash(bytes32)")] - pub struct ReplaySafeHashCall { - pub hash: [u8; 32], - } - ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")] - pub struct UpgradeToAndCallCall { - pub new_implementation: ::ethers::core::types::Address, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateUserOp` function with signature `validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0x3a871cdd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "validateUserOp", - abi = "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)" - )] - pub struct ValidateUserOpCall { - pub user_op: UserOperation, - pub user_op_hash: [u8; 32], - pub missing_account_funds: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum CoinbaseSmartWalletCalls { - ReplayableNonceKey(ReplayableNonceKeyCall), - AddOwnerAddress(AddOwnerAddressCall), - AddOwnerPublicKey(AddOwnerPublicKeyCall), - CanSkipChainIdValidation(CanSkipChainIdValidationCall), - DomainSeparator(DomainSeparatorCall), - Eip712Domain(Eip712DomainCall), - EntryPoint(EntryPointCall), - Execute(ExecuteCall), - ExecuteBatch(ExecuteBatchCall), - ExecuteWithoutChainIdValidation(ExecuteWithoutChainIdValidationCall), - GetUserOpHashWithoutChainId(GetUserOpHashWithoutChainIdCall), - Implementation(ImplementationCall), - Initialize(InitializeCall), - IsOwnerAddress(IsOwnerAddressCall), - IsOwnerBytes(IsOwnerBytesCall), - IsOwnerPublicKey(IsOwnerPublicKeyCall), - IsValidSignature(IsValidSignatureCall), - NextOwnerIndex(NextOwnerIndexCall), - OwnerAtIndex(OwnerAtIndexCall), - ProxiableUUID(ProxiableUUIDCall), - RemoveOwnerAtIndex(RemoveOwnerAtIndexCall), - ReplaySafeHash(ReplaySafeHashCall), - UpgradeToAndCall(UpgradeToAndCallCall), - ValidateUserOp(ValidateUserOpCall), - } - impl ::ethers::core::abi::AbiDecode for CoinbaseSmartWalletCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReplayableNonceKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerAddress(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CanSkipChainIdValidation(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Eip712Domain(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::EntryPoint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Execute(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ExecuteBatch(decoded)); - } - if let Ok(decoded) = - ::decode( - data, - ) - { - return Ok(Self::ExecuteWithoutChainIdValidation(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetUserOpHashWithoutChainId(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::Implementation(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerAddress(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::IsOwnerBytes(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsValidSignature(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NextOwnerIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::OwnerAtIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ProxiableUUID(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::RemoveOwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReplaySafeHash(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UpgradeToAndCall(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidateUserOp(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for CoinbaseSmartWalletCalls { - fn encode(self) -> Vec { - match self { - Self::ReplayableNonceKey(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::AddOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::AddOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CanSkipChainIdValidation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Eip712Domain(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EntryPoint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Execute(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ExecuteBatch(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ExecuteWithoutChainIdValidation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetUserOpHashWithoutChainId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Implementation(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialize(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerBytes(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsValidSignature(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NextOwnerIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ProxiableUUID(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RemoveOwnerAtIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ReplaySafeHash(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UpgradeToAndCall(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateUserOp(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for CoinbaseSmartWalletCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ReplayableNonceKey(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::CanSkipChainIdValidation(element) => ::core::fmt::Display::fmt(element, f), - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f), - Self::EntryPoint(element) => ::core::fmt::Display::fmt(element, f), - Self::Execute(element) => ::core::fmt::Display::fmt(element, f), - Self::ExecuteBatch(element) => ::core::fmt::Display::fmt(element, f), - Self::ExecuteWithoutChainIdValidation(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetUserOpHashWithoutChainId(element) => ::core::fmt::Display::fmt(element, f), - Self::Implementation(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerBytes(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::IsValidSignature(element) => ::core::fmt::Display::fmt(element, f), - Self::NextOwnerIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::ReplaySafeHash(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateUserOp(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ReplayableNonceKeyCall) -> Self { - Self::ReplayableNonceKey(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: AddOwnerAddressCall) -> Self { - Self::AddOwnerAddress(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: AddOwnerPublicKeyCall) -> Self { - Self::AddOwnerPublicKey(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: CanSkipChainIdValidationCall) -> Self { - Self::CanSkipChainIdValidation(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: Eip712DomainCall) -> Self { - Self::Eip712Domain(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: EntryPointCall) -> Self { - Self::EntryPoint(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ExecuteCall) -> Self { - Self::Execute(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ExecuteBatchCall) -> Self { - Self::ExecuteBatch(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ExecuteWithoutChainIdValidationCall) -> Self { - Self::ExecuteWithoutChainIdValidation(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: GetUserOpHashWithoutChainIdCall) -> Self { - Self::GetUserOpHashWithoutChainId(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ImplementationCall) -> Self { - Self::Implementation(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: IsOwnerAddressCall) -> Self { - Self::IsOwnerAddress(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: IsOwnerBytesCall) -> Self { - Self::IsOwnerBytes(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: IsOwnerPublicKeyCall) -> Self { - Self::IsOwnerPublicKey(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: IsValidSignatureCall) -> Self { - Self::IsValidSignature(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: NextOwnerIndexCall) -> Self { - Self::NextOwnerIndex(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: OwnerAtIndexCall) -> Self { - Self::OwnerAtIndex(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ProxiableUUIDCall) -> Self { - Self::ProxiableUUID(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: RemoveOwnerAtIndexCall) -> Self { - Self::RemoveOwnerAtIndex(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ReplaySafeHashCall) -> Self { - Self::ReplaySafeHash(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: UpgradeToAndCallCall) -> Self { - Self::UpgradeToAndCall(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletCalls { - fn from(value: ValidateUserOpCall) -> Self { - Self::ValidateUserOp(value) - } - } - ///Container type for all return fields from the `REPLAYABLE_NONCE_KEY` function with signature `REPLAYABLE_NONCE_KEY()` and selector `0x88ce4c7c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ReplayableNonceKeyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `canSkipChainIdValidation` function with signature `canSkipChainIdValidation(bytes4)` and selector `0x9f9bcb34` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CanSkipChainIdValidationReturn(pub bool); - ///Container type for all return fields from the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct Eip712DomainReturn { - pub fields: [u8; 1], - pub name: ::std::string::String, - pub version: ::std::string::String, - pub chain_id: ::ethers::core::types::U256, - pub verifying_contract: ::ethers::core::types::Address, - pub salt: [u8; 32], - pub extensions: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all return fields from the `entryPoint` function with signature `entryPoint()` and selector `0xb0d691fe` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct EntryPointReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getUserOpHashWithoutChainId` function with signature `getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x4f6e7f22` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetUserOpHashWithoutChainIdReturn { - pub user_op_hash: [u8; 32], - } - ///Container type for all return fields from the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ImplementationReturn { - pub address: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerAddressReturn(pub bool); - ///Container type for all return fields from the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerBytesReturn(pub bool); - ///Container type for all return fields from the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerPublicKeyReturn(pub bool); - ///Container type for all return fields from the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsValidSignatureReturn { - pub result: [u8; 4], - } - ///Container type for all return fields from the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NextOwnerIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OwnerAtIndexReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ProxiableUUIDReturn(pub [u8; 32]); - ///Container type for all return fields from the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ReplaySafeHashReturn(pub [u8; 32]); - ///Container type for all return fields from the `validateUserOp` function with signature `validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0x3a871cdd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ValidateUserOpReturn { - pub validation_data: ::ethers::core::types::U256, - } -} diff --git a/xmtp_id/src/bindings/coinbase_smart_wallet_factory.rs b/xmtp_id/src/bindings/coinbase_smart_wallet_factory.rs deleted file mode 100644 index e04ba2c94..000000000 --- a/xmtp_id/src/bindings/coinbase_smart_wallet_factory.rs +++ /dev/null @@ -1,496 +0,0 @@ -pub use coinbase_smart_wallet_factory::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod coinbase_smart_wallet_factory { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("erc4337"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some(::std::borrow::ToOwned::to_owned( - "address" - ),), - },], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("createAccount"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("createAccount"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owners"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Bytes, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes[]"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("contract CoinbaseSmartWallet",), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("getAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getAddress"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owners"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Bytes, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes[]"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("predicted"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("implementation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("implementation"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("initCodeHash"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initCodeHash"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("result"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([( - ::std::borrow::ToOwned::to_owned("OwnerRequired"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("OwnerRequired"), - inputs: ::std::vec![], - },], - )]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static COINBASESMARTWALLETFACTORY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0`@R`@Qa\x05\xEB8\x03\x80a\x05\xEB\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x003V[`\x01`\x01`\xA0\x1B\x03\x16`\x80Ra\0cV[`\0` \x82\x84\x03\x12\x15a\0EW`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0\\W`\0\x80\xFD[\x93\x92PPPV[`\x80Qa\x05`a\0\x8B`\09`\0\x81\x81`\xA6\x01R\x81\x81a\x01<\x01Ra\x02;\x01Ra\x05``\0\xF3\xFE`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80c%\x0B\x1BA\x14a\0DW\x80c?\xFB\xA3o\x14a\0\x81W\x80c\\`\xDA\x1B\x14a\0\x94W\x80c\xDBLT^\x14a\0\xC8W[`\0\x80\xFD[4\x80\x15a\0PW`\0\x80\xFD[Pa\0da\0_6`\x04a\x03\xB7V[a\0\xEBV[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0da\0\x8F6`\x04a\x03\xB7V[a\x01\x11V[4\x80\x15a\0\xA0W`\0\x80\xFD[Pa\0d\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\0\xD4W`\0\x80\xFD[Pa\0\xDDa\x01\xE6V[`@Q\x90\x81R` \x01a\0xV[`\0a\x01\ta\0\xF8a\x01\xE6V[a\x01\x03\x86\x86\x86a\x02{V[0a\x02\xB1V[\x94\x93PPPPV[`\0\x82\x81\x03a\x013W`@Qc=`\0\xFD[PPPP[PP\x93\x92PPPV[`@\x80Q\x7F\xCC75\xA9 \xA3\xCAP]8+\xBCTZ\xF4=`\0\x80>`8W=`\0\xFD[=`\0\xF3``\x90\x81R\x7FQU\xF36==7==6=\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\x83Ra`\t` R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x1ERh`==\x81`\"=9s`\nR`_`! \x91\x90\x92R`\0\x90\x91R\x90V[`\0\x83\x83\x83`@Q` \x01a\x02\x92\x93\x92\x91\x90a\x05\x06V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x93\x92PPPV[`\0`\xFF`\0SP`5\x92\x83R``\x1B`\x01R`\x15R`U`\0\x90\x81 \x91R\x90V[`\0\x80`@Q\x7F\xCC75\xA9 \xA3\xCAP]8+\xBCTZ\xF4=`\0\x80>`8W=`\0\xFD[=`\0\xF3``R\x7FQU\xF36==7==6=\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v`@Ra`\t` R\x84`\x1ERh`==\x81`\"=9s`\nR`_`! `5\x82\x01R0`X\x1B\x81R`\xFF\x81S\x83`\x15\x82\x01R`U\x81 \x91P\x81;a\x03\x7FW\x83`_`!\x88\xF5\x91P\x81a\x03zWc0\x11d%`\0R`\x04`\x1C\xFD[a\x03\xA5V[`\x01\x92P\x85\x15a\x03\xA5W`\08`\08\x89\x86Z\xF1a\x03\xA5Wc\xB1-\x13\xEB`\0R`\x04`\x1C\xFD[\x80`@RP`\0``R\x93P\x93\x91PPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x03\xCCW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\xE4W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x03\xF8W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x04\x07W`\0\x80\xFD[\x87` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x04\x1CW`\0\x80\xFD[` \x92\x83\x01\x98\x90\x97P\x95\x90\x91\x015\x94\x93PPPPV[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\0\x83\x83\x85R` \x80\x86\x01\x95P` \x85`\x05\x1B\x83\x01\x01\x84`\0[\x87\x81\x10\x15a\x04\xE5W\x84\x83\x03`\x1F\x19\x01\x89R\x8156\x88\x90\x03`\x1E\x19\x01\x81\x12a\x04\x9BW`\0\x80\xFD[\x87\x01\x84\x81\x01\x905g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xB7W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x04\xC6W`\0\x80\xFD[a\x04\xD1\x85\x82\x84a\x042V[\x9A\x86\x01\x9A\x94PPP\x90\x83\x01\x90`\x01\x01a\x04uV[P\x90\x97\x96PPPPPPPV[` \x81R`\0a\x01\t` \x83\x01\x84\x86a\x04[V[`@\x81R`\0a\x05\x1A`@\x83\x01\x85\x87a\x04[V[\x90P\x82` \x83\x01R\x94\x93PPPPV\xFE\xA2dipfsX\"\x12 \x98\xBA\xE6Nb\x85\x9A\xC8\xD5\xED\x01\xC4\x92~_\xCE@oc+Q|\x86\xF08\xF0o\xEF\x83U\xDB\xA1dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static COINBASESMARTWALLETFACTORY_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\0?W`\x005`\xE0\x1C\x80c%\x0B\x1BA\x14a\0DW\x80c?\xFB\xA3o\x14a\0\x81W\x80c\\`\xDA\x1B\x14a\0\x94W\x80c\xDBLT^\x14a\0\xC8W[`\0\x80\xFD[4\x80\x15a\0PW`\0\x80\xFD[Pa\0da\0_6`\x04a\x03\xB7V[a\0\xEBV[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0da\0\x8F6`\x04a\x03\xB7V[a\x01\x11V[4\x80\x15a\0\xA0W`\0\x80\xFD[Pa\0d\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\0\xD4W`\0\x80\xFD[Pa\0\xDDa\x01\xE6V[`@Q\x90\x81R` \x01a\0xV[`\0a\x01\ta\0\xF8a\x01\xE6V[a\x01\x03\x86\x86\x86a\x02{V[0a\x02\xB1V[\x94\x93PPPPV[`\0\x82\x81\x03a\x013W`@Qc=`\0\xFD[PPPP[PP\x93\x92PPPV[`@\x80Q\x7F\xCC75\xA9 \xA3\xCAP]8+\xBCTZ\xF4=`\0\x80>`8W=`\0\xFD[=`\0\xF3``\x90\x81R\x7FQU\xF36==7==6=\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\x83Ra`\t` R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x1ERh`==\x81`\"=9s`\nR`_`! \x91\x90\x92R`\0\x90\x91R\x90V[`\0\x83\x83\x83`@Q` \x01a\x02\x92\x93\x92\x91\x90a\x05\x06V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x93\x92PPPV[`\0`\xFF`\0SP`5\x92\x83R``\x1B`\x01R`\x15R`U`\0\x90\x81 \x91R\x90V[`\0\x80`@Q\x7F\xCC75\xA9 \xA3\xCAP]8+\xBCTZ\xF4=`\0\x80>`8W=`\0\xFD[=`\0\xF3``R\x7FQU\xF36==7==6=\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v`@Ra`\t` R\x84`\x1ERh`==\x81`\"=9s`\nR`_`! `5\x82\x01R0`X\x1B\x81R`\xFF\x81S\x83`\x15\x82\x01R`U\x81 \x91P\x81;a\x03\x7FW\x83`_`!\x88\xF5\x91P\x81a\x03zWc0\x11d%`\0R`\x04`\x1C\xFD[a\x03\xA5V[`\x01\x92P\x85\x15a\x03\xA5W`\08`\08\x89\x86Z\xF1a\x03\xA5Wc\xB1-\x13\xEB`\0R`\x04`\x1C\xFD[\x80`@RP`\0``R\x93P\x93\x91PPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x03\xCCW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03\xE4W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x03\xF8W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x04\x07W`\0\x80\xFD[\x87` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x04\x1CW`\0\x80\xFD[` \x92\x83\x01\x98\x90\x97P\x95\x90\x91\x015\x94\x93PPPPV[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\0\x83\x83\x85R` \x80\x86\x01\x95P` \x85`\x05\x1B\x83\x01\x01\x84`\0[\x87\x81\x10\x15a\x04\xE5W\x84\x83\x03`\x1F\x19\x01\x89R\x8156\x88\x90\x03`\x1E\x19\x01\x81\x12a\x04\x9BW`\0\x80\xFD[\x87\x01\x84\x81\x01\x905g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xB7W`\0\x80\xFD[\x806\x03\x82\x13\x15a\x04\xC6W`\0\x80\xFD[a\x04\xD1\x85\x82\x84a\x042V[\x9A\x86\x01\x9A\x94PPP\x90\x83\x01\x90`\x01\x01a\x04uV[P\x90\x97\x96PPPPPPPV[` \x81R`\0a\x01\t` \x83\x01\x84\x86a\x04[V[`@\x81R`\0a\x05\x1A`@\x83\x01\x85\x87a\x04[V[\x90P\x82` \x83\x01R\x94\x93PPPPV\xFE\xA2dipfsX\"\x12 \x98\xBA\xE6Nb\x85\x9A\xC8\xD5\xED\x01\xC4\x92~_\xCE@oc+Q|\x86\xF08\xF0o\xEF\x83U\xDB\xA1dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static COINBASESMARTWALLETFACTORY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct CoinbaseSmartWalletFactory(::ethers::contract::Contract); - impl ::core::clone::Clone for CoinbaseSmartWalletFactory { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for CoinbaseSmartWalletFactory { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for CoinbaseSmartWalletFactory { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for CoinbaseSmartWalletFactory { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(CoinbaseSmartWalletFactory)) - .field(&self.address()) - .finish() - } - } - impl CoinbaseSmartWalletFactory { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - COINBASESMARTWALLETFACTORY_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - COINBASESMARTWALLETFACTORY_ABI.clone(), - COINBASESMARTWALLETFACTORY_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `createAccount` (0x3ffba36f) function - pub fn create_account( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - nonce: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([63, 251, 163, 111], (owners, nonce)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getAddress` (0x250b1b41) function - pub fn get_address( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - nonce: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([37, 11, 27, 65], (owners, nonce)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `implementation` (0x5c60da1b) function - pub fn implementation( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([92, 96, 218, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initCodeHash` (0xdb4c545e) function - pub fn init_code_hash(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([219, 76, 84, 94], ()) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for CoinbaseSmartWalletFactory - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `OwnerRequired` with signature `OwnerRequired()` and selector `0x3c776be1` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "OwnerRequired", abi = "OwnerRequired()")] - pub struct OwnerRequired; - ///Container type for all input parameters for the `createAccount` function with signature `createAccount(bytes[],uint256)` and selector `0x3ffba36f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "createAccount", abi = "createAccount(bytes[],uint256)")] - pub struct CreateAccountCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - pub nonce: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getAddress` function with signature `getAddress(bytes[],uint256)` and selector `0x250b1b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getAddress", abi = "getAddress(bytes[],uint256)")] - pub struct GetAddressCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - pub nonce: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "implementation", abi = "implementation()")] - pub struct ImplementationCall; - ///Container type for all input parameters for the `initCodeHash` function with signature `initCodeHash()` and selector `0xdb4c545e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "initCodeHash", abi = "initCodeHash()")] - pub struct InitCodeHashCall; - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum CoinbaseSmartWalletFactoryCalls { - CreateAccount(CreateAccountCall), - GetAddress(GetAddressCall), - Implementation(ImplementationCall), - InitCodeHash(InitCodeHashCall), - } - impl ::ethers::core::abi::AbiDecode for CoinbaseSmartWalletFactoryCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::CreateAccount(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetAddress(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::Implementation(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::InitCodeHash(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for CoinbaseSmartWalletFactoryCalls { - fn encode(self) -> Vec { - match self { - Self::CreateAccount(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Implementation(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InitCodeHash(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for CoinbaseSmartWalletFactoryCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::CreateAccount(element) => ::core::fmt::Display::fmt(element, f), - Self::GetAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::Implementation(element) => ::core::fmt::Display::fmt(element, f), - Self::InitCodeHash(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for CoinbaseSmartWalletFactoryCalls { - fn from(value: CreateAccountCall) -> Self { - Self::CreateAccount(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletFactoryCalls { - fn from(value: GetAddressCall) -> Self { - Self::GetAddress(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletFactoryCalls { - fn from(value: ImplementationCall) -> Self { - Self::Implementation(value) - } - } - impl ::core::convert::From for CoinbaseSmartWalletFactoryCalls { - fn from(value: InitCodeHashCall) -> Self { - Self::InitCodeHash(value) - } - } - ///Container type for all return fields from the `createAccount` function with signature `createAccount(bytes[],uint256)` and selector `0x3ffba36f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CreateAccountReturn { - pub account: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `getAddress` function with signature `getAddress(bytes[],uint256)` and selector `0x250b1b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetAddressReturn { - pub predicted: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ImplementationReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `initCodeHash` function with signature `initCodeHash()` and selector `0xdb4c545e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct InitCodeHashReturn { - pub result: [u8; 32], - } -} diff --git a/xmtp_id/src/bindings/dummy.rs b/xmtp_id/src/bindings/dummy.rs deleted file mode 100644 index 4d978770c..000000000 --- a/xmtp_id/src/bindings/dummy.rs +++ /dev/null @@ -1,576 +0,0 @@ -pub use dummy::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod dummy { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("dummy"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("dummy"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("proxiableUUID"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("proxiableUUID"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("newImplementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Done"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Done"), - inputs: ::std::vec![], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Upgraded"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Upgraded"), - inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("implementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - },], - anonymous: false, - },], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static DUMMY_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0`@R0`\x80R4\x80\x15a\0\x14W`\0\x80\xFD[P`\x80Qa\x02\xB6a\x006`\09`\0\x81\x81`\xB7\x01Ra\x01\x94\x01Ra\x02\xB6`\0\xF3\xFE`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80c2\xE4:\x11\x14a\09W\x80cO\x1E\xF2\x86\x14a\0PW\x80cR\xD1\x90-\x14a\0cW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Na\0\x8AV[\0[a\0Na\0^6`\x04a\x01\xEFV[a\0\xB5V[4\x80\x15a\0oW`\0\x80\xFD[Pa\0xa\x01\x90V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`@Q\x7F\x9F\x9F\xB44WGI\xB7DX\xE0\xDD\xC3\xCF_\xD5\xBD\xB1\xB0\t\xC8a^\x82V\x06\xB57$Wo5\x90`\0\x90\xA1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\0\xEBWc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x01=WcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\x01\x8AW`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\x01\x88W=`\0\x82>=\x81\xFD[P[PPPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\x01\xC8Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91PP\x90V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x02\x04W`\0\x80\xFD[\x835`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\x1BW`\0\x80\xFD[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x028W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x02LW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02[W`\0\x80\xFD[\x87` \x82\x85\x01\x01\x11\x15a\x02mW`\0\x80\xFD[` \x83\x01\x94P\x80\x93PPPP\x92P\x92P\x92V\xFE\xA2dipfsX\"\x12 \xC0_GN:KSv\n\n\x1Fs\x98xg\xACN\xD4\x98\xFDh\x9E\x93\x88h?\x84r\xA9{i/dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static DUMMY_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x004W`\x005`\xE0\x1C\x80c2\xE4:\x11\x14a\09W\x80cO\x1E\xF2\x86\x14a\0PW\x80cR\xD1\x90-\x14a\0cW[`\0\x80\xFD[4\x80\x15a\0EW`\0\x80\xFD[Pa\0Na\0\x8AV[\0[a\0Na\0^6`\x04a\x01\xEFV[a\0\xB5V[4\x80\x15a\0oW`\0\x80\xFD[Pa\0xa\x01\x90V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`@Q\x7F\x9F\x9F\xB44WGI\xB7DX\xE0\xDD\xC3\xCF_\xD5\xBD\xB1\xB0\t\xC8a^\x82V\x06\xB57$Wo5\x90`\0\x90\xA1V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\0\xEBWc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x01=WcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\x01\x8AW`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\x01\x88W=`\0\x82>=\x81\xFD[P[PPPPV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\x01\xC8Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91PP\x90V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x02\x04W`\0\x80\xFD[\x835`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\x1BW`\0\x80\xFD[\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x028W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x02LW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02[W`\0\x80\xFD[\x87` \x82\x85\x01\x01\x11\x15a\x02mW`\0\x80\xFD[` \x83\x01\x94P\x80\x93PPPP\x92P\x92P\x92V\xFE\xA2dipfsX\"\x12 \xC0_GN:KSv\n\n\x1Fs\x98xg\xACN\xD4\x98\xFDh\x9E\x93\x88h?\x84r\xA9{i/dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static DUMMY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Dummy(::ethers::contract::Contract); - impl ::core::clone::Clone for Dummy { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Dummy { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Dummy { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Dummy { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Dummy)) - .field(&self.address()) - .finish() - } - } - impl Dummy { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - DUMMY_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - DUMMY_ABI.clone(), - DUMMY_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `dummy` (0x32e43a11) function - pub fn dummy(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([50, 228, 58, 17], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `proxiableUUID` (0x52d1902d) function - pub fn proxiable_uuid(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 209, 144, 45], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function - pub fn upgrade_to_and_call( - &self, - new_implementation: ::ethers::core::types::Address, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 30, 242, 134], (new_implementation, data)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Done` event - pub fn done_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DoneFilter> { - self.0.event() - } - ///Gets the contract's `Upgraded` event - pub fn upgraded_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DummyEvents> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for Dummy { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `UnauthorizedCallContext` with signature `UnauthorizedCallContext()` and selector `0x9f03a026` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UnauthorizedCallContext", abi = "UnauthorizedCallContext()")] - pub struct UnauthorizedCallContext; - ///Custom Error type `UpgradeFailed` with signature `UpgradeFailed()` and selector `0x55299b49` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UpgradeFailed", abi = "UpgradeFailed()")] - pub struct UpgradeFailed; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum DummyErrors { - UnauthorizedCallContext(UnauthorizedCallContext), - UpgradeFailed(UpgradeFailed), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for DummyErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UnauthorizedCallContext(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UpgradeFailed(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DummyErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::UnauthorizedCallContext(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UpgradeFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for DummyErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for DummyErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::UnauthorizedCallContext(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for DummyErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for DummyErrors { - fn from(value: UnauthorizedCallContext) -> Self { - Self::UnauthorizedCallContext(value) - } - } - impl ::core::convert::From for DummyErrors { - fn from(value: UpgradeFailed) -> Self { - Self::UpgradeFailed(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Done", abi = "Done()")] - pub struct DoneFilter; - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Upgraded", abi = "Upgraded(address)")] - pub struct UpgradedFilter { - #[ethevent(indexed)] - pub implementation: ::ethers::core::types::Address, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum DummyEvents { - DoneFilter(DoneFilter), - UpgradedFilter(UpgradedFilter), - } - impl ::ethers::contract::EthLogDecode for DummyEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = DoneFilter::decode_log(log) { - return Ok(DummyEvents::DoneFilter(decoded)); - } - if let Ok(decoded) = UpgradedFilter::decode_log(log) { - return Ok(DummyEvents::UpgradedFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for DummyEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DoneFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradedFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DummyEvents { - fn from(value: DoneFilter) -> Self { - Self::DoneFilter(value) - } - } - impl ::core::convert::From for DummyEvents { - fn from(value: UpgradedFilter) -> Self { - Self::UpgradedFilter(value) - } - } - ///Container type for all input parameters for the `dummy` function with signature `dummy()` and selector `0x32e43a11` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "dummy", abi = "dummy()")] - pub struct DummyCall; - ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")] - pub struct ProxiableUUIDCall; - ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")] - pub struct UpgradeToAndCallCall { - pub new_implementation: ::ethers::core::types::Address, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum DummyCalls { - Dummy(DummyCall), - ProxiableUUID(ProxiableUUIDCall), - UpgradeToAndCall(UpgradeToAndCallCall), - } - impl ::ethers::core::abi::AbiDecode for DummyCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Dummy(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ProxiableUUID(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UpgradeToAndCall(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for DummyCalls { - fn encode(self) -> Vec { - match self { - Self::Dummy(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ProxiableUUID(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UpgradeToAndCall(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for DummyCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Dummy(element) => ::core::fmt::Display::fmt(element, f), - Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for DummyCalls { - fn from(value: DummyCall) -> Self { - Self::Dummy(value) - } - } - impl ::core::convert::From for DummyCalls { - fn from(value: ProxiableUUIDCall) -> Self { - Self::ProxiableUUID(value) - } - } - impl ::core::convert::From for DummyCalls { - fn from(value: UpgradeToAndCallCall) -> Self { - Self::UpgradeToAndCall(value) - } - } - ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ProxiableUUIDReturn(pub [u8; 32]); -} diff --git a/xmtp_id/src/bindings/erc1271.rs b/xmtp_id/src/bindings/erc1271.rs deleted file mode 100644 index 1ef23f45c..000000000 --- a/xmtp_id/src/bindings/erc1271.rs +++ /dev/null @@ -1,463 +0,0 @@ -pub use erc1271::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod erc1271 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("domainSeparator"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("domainSeparator"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("eip712Domain"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("eip712Domain"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("fields"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(1usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes1"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("version"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("chainId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("verifyingContract"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("salt"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("extensions"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isValidSignature"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isValidSignature"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("signature"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("result"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("replaySafeHash"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("replaySafeHash"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ERC1271_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct ERC1271(::ethers::contract::Contract); - impl ::core::clone::Clone for ERC1271 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ERC1271 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ERC1271 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ERC1271 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ERC1271)) - .field(&self.address()) - .finish() - } - } - impl ERC1271 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ERC1271_ABI.clone(), - client, - )) - } - ///Calls the contract's `domainSeparator` (0xf698da25) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([246, 152, 218, 37], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `eip712Domain` (0x84b0196e) function - pub fn eip_712_domain( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - [u8; 1], - ::std::string::String, - ::std::string::String, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - [u8; 32], - ::std::vec::Vec<::ethers::core::types::U256>, - ), - > { - self.0 - .method_hash([132, 176, 25, 110], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isValidSignature` (0x1626ba7e) function - pub fn is_valid_signature( - &self, - hash: [u8; 32], - signature: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 38, 186, 126], (hash, signature)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `replaySafeHash` (0xce1506be) function - pub fn replay_safe_hash( - &self, - hash: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([206, 21, 6, 190], hash) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for ERC1271 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "domainSeparator", abi = "domainSeparator()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "eip712Domain", abi = "eip712Domain()")] - pub struct Eip712DomainCall; - ///Container type for all input parameters for the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isValidSignature", abi = "isValidSignature(bytes32,bytes)")] - pub struct IsValidSignatureCall { - pub hash: [u8; 32], - pub signature: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "replaySafeHash", abi = "replaySafeHash(bytes32)")] - pub struct ReplaySafeHashCall { - pub hash: [u8; 32], - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum ERC1271Calls { - DomainSeparator(DomainSeparatorCall), - Eip712Domain(Eip712DomainCall), - IsValidSignature(IsValidSignatureCall), - ReplaySafeHash(ReplaySafeHashCall), - } - impl ::ethers::core::abi::AbiDecode for ERC1271Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Eip712Domain(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsValidSignature(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReplaySafeHash(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ERC1271Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Eip712Domain(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsValidSignature(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ReplaySafeHash(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for ERC1271Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f), - Self::IsValidSignature(element) => ::core::fmt::Display::fmt(element, f), - Self::ReplaySafeHash(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for ERC1271Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for ERC1271Calls { - fn from(value: Eip712DomainCall) -> Self { - Self::Eip712Domain(value) - } - } - impl ::core::convert::From for ERC1271Calls { - fn from(value: IsValidSignatureCall) -> Self { - Self::IsValidSignature(value) - } - } - impl ::core::convert::From for ERC1271Calls { - fn from(value: ReplaySafeHashCall) -> Self { - Self::ReplaySafeHash(value) - } - } - ///Container type for all return fields from the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct Eip712DomainReturn { - pub fields: [u8; 1], - pub name: ::std::string::String, - pub version: ::std::string::String, - pub chain_id: ::ethers::core::types::U256, - pub verifying_contract: ::ethers::core::types::Address, - pub salt: [u8; 32], - pub extensions: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all return fields from the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsValidSignatureReturn { - pub result: [u8; 4], - } - ///Container type for all return fields from the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ReplaySafeHashReturn(pub [u8; 32]); -} diff --git a/xmtp_id/src/bindings/erc1271_input_generator.rs b/xmtp_id/src/bindings/erc1271_input_generator.rs deleted file mode 100644 index c592e1146..000000000 --- a/xmtp_id/src/bindings/erc1271_input_generator.rs +++ /dev/null @@ -1,316 +0,0 @@ -pub use erc1271_input_generator::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod erc1271_input_generator { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("contract CoinbaseSmartWallet",), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("accountFactory"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("factoryCalldata"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - }), - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AccountDeploymentFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AccountDeploymentFailed",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ReturnedAddressDoesNotMatchAccount"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "ReturnedAddressDoesNotMatchAccount", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("returned"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ERC1271INPUTGENERATOR_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`@Qa\x03\xAB8\x03\x80a\x03\xAB\x839\x81\x01`@\x81\x90Ra\0/\x91a\x02tV[`\0a\0=\x85\x85\x85\x85a\0IV[\x90P\x80`\x80R` `\x80\xF3[`\0`\x01`\x01`\xA0\x1B\x03\x85\x16;\x15a\0\xCBW`@Qcg\n\x83_`\xE1\x1B\x81R`\x04\x81\x01\x85\x90R`\x01`\x01`\xA0\x1B\x03\x86\x16\x90c\xCE\x15\x06\xBE\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xA0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xC4\x91\x90a\x03QV[\x90Pa\x02\x1AV[`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\0\xE6\x91\x90a\x03jV[`\0`@Q\x80\x83\x03\x81`\0\x86Z\xF1\x91PP=\x80`\0\x81\x14a\x01#W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01(V[``\x91P[P\x91P\x91P\x81a\x01JW`@Qb\x94UU`\xE5\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81\x80` \x01\x90Q\x81\x01\x90a\x01`\x91\x90a\x03\x86V[\x90P\x87`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x01\xABW`@Qc\xC8bC\x83`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x80\x8A\x16`\x04\x83\x01R\x82\x16`$\x82\x01R`D\x01`@Q\x80\x91\x03\x90\xFD[`@Qcg\n\x83_`\xE1\x1B\x81R`\x04\x81\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x89\x16\x90c\xCE\x15\x06\xBE\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\x14\x91\x90a\x03QV[\x93PPPP[\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x027W`\0\x80\xFD[PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x02kW\x81\x81\x01Q\x83\x82\x01R` \x01a\x02SV[PP`\0\x91\x01RV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x02\x8AW`\0\x80\xFD[\x84Qa\x02\x95\x81a\x02\"V[` \x86\x01Q`@\x87\x01Q\x91\x95P\x93Pa\x02\xAD\x81a\x02\"V[``\x86\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x02\xCAW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\x02\xDEW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x02\xF0Wa\x02\xF0a\x02:V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x03\x18Wa\x03\x18a\x02:V[\x81`@R\x82\x81R\x8A` \x84\x87\x01\x01\x11\x15a\x031W`\0\x80\xFD[a\x03B\x83` \x83\x01` \x88\x01a\x02PV[\x97\x9A\x96\x99P\x94\x97PPPPPPV[`\0` \x82\x84\x03\x12\x15a\x03cW`\0\x80\xFD[PQ\x91\x90PV[`\0\x82Qa\x03|\x81\x84` \x87\x01a\x02PV[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x03\x98W`\0\x80\xFD[\x81Qa\x03\xA3\x81a\x02\"V[\x93\x92PPPV\xFE"; - /// The bytecode of the contract. - pub static ERC1271INPUTGENERATOR_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x86\x8Dv\xF4p\xB7z\x1B/?\x11U\xB1\xCF\x83\xC7\xDA\x8A\xA4\x93\xAF\x03\xF9\x84;\xE8\x86\xD5\xCC\xFAC\x10dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static ERC1271INPUTGENERATOR_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct ERC1271InputGenerator(::ethers::contract::Contract); - impl ::core::clone::Clone for ERC1271InputGenerator { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for ERC1271InputGenerator { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for ERC1271InputGenerator { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for ERC1271InputGenerator { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(ERC1271InputGenerator)) - .field(&self.address()) - .finish() - } - } - impl ERC1271InputGenerator { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ERC1271INPUTGENERATOR_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - ERC1271INPUTGENERATOR_ABI.clone(), - ERC1271INPUTGENERATOR_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for ERC1271InputGenerator - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AccountDeploymentFailed` with signature `AccountDeploymentFailed()` and selector `0x128aaaa0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "AccountDeploymentFailed", abi = "AccountDeploymentFailed()")] - pub struct AccountDeploymentFailed; - ///Custom Error type `ReturnedAddressDoesNotMatchAccount` with signature `ReturnedAddressDoesNotMatchAccount(address,address)` and selector `0xc8624383` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "ReturnedAddressDoesNotMatchAccount", - abi = "ReturnedAddressDoesNotMatchAccount(address,address)" - )] - pub struct ReturnedAddressDoesNotMatchAccount { - pub account: ::ethers::core::types::Address, - pub returned: ::ethers::core::types::Address, - } - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum ERC1271InputGeneratorErrors { - AccountDeploymentFailed(AccountDeploymentFailed), - ReturnedAddressDoesNotMatchAccount(ReturnedAddressDoesNotMatchAccount), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for ERC1271InputGeneratorErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AccountDeploymentFailed(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReturnedAddressDoesNotMatchAccount(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for ERC1271InputGeneratorErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AccountDeploymentFailed(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ReturnedAddressDoesNotMatchAccount(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for ERC1271InputGeneratorErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for ERC1271InputGeneratorErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AccountDeploymentFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::ReturnedAddressDoesNotMatchAccount(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for ERC1271InputGeneratorErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for ERC1271InputGeneratorErrors { - fn from(value: AccountDeploymentFailed) -> Self { - Self::AccountDeploymentFailed(value) - } - } - impl ::core::convert::From for ERC1271InputGeneratorErrors { - fn from(value: ReturnedAddressDoesNotMatchAccount) -> Self { - Self::ReturnedAddressDoesNotMatchAccount(value) - } - } -} diff --git a/xmtp_id/src/bindings/fcl_ecdsa.rs b/xmtp_id/src/bindings/fcl_ecdsa.rs deleted file mode 100644 index e999c8acc..000000000 --- a/xmtp_id/src/bindings/fcl_ecdsa.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub use fcl_ecdsa::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fcl_ecdsa { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static FCL_ECDSA_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xA4E\x8B\xE3\0\xB4|\xB4\x0FK\x1F\xEF\xCB\xC7\x1AO\xB6\x13\"\t\xE7\x1954d\xB9\xF0\xFA\xE4_d&dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static FCL_ECDSA_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xA4E\x8B\xE3\0\xB4|\xB4\x0FK\x1F\xEF\xCB\xC7\x1AO\xB6\x13\"\t\xE7\x1954d\xB9\xF0\xFA\xE4_d&dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static FCL_ECDSA_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FCL_ecdsa(::ethers::contract::Contract); - impl ::core::clone::Clone for FCL_ecdsa { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FCL_ecdsa { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FCL_ecdsa { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FCL_ecdsa { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(FCL_ecdsa)) - .field(&self.address()) - .finish() - } - } - impl FCL_ecdsa { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FCL_ECDSA_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FCL_ECDSA_ABI.clone(), - FCL_ECDSA_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for FCL_ecdsa { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/fcl_elliptic_zz.rs b/xmtp_id/src/bindings/fcl_elliptic_zz.rs deleted file mode 100644 index 17bf6501d..000000000 --- a/xmtp_id/src/bindings/fcl_elliptic_zz.rs +++ /dev/null @@ -1,121 +0,0 @@ -pub use fcl_elliptic_zz::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod fcl_elliptic_zz { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static FCL_ELLIPTIC_ZZ_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xEF\x9E\x9EP\x8F\x1E\xE66\x0F\xCC\xC9\x19\x81\xA97u\xADD\xFCPbe\xDF#=\xC0|\xD7\x9A\x1D'VdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static FCL_ELLIPTIC_ZZ_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xEF\x9E\x9EP\x8F\x1E\xE66\x0F\xCC\xC9\x19\x81\xA97u\xADD\xFCPbe\xDF#=\xC0|\xD7\x9A\x1D'VdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static FCL_ELLIPTIC_ZZ_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct FCL_Elliptic_ZZ(::ethers::contract::Contract); - impl ::core::clone::Clone for FCL_Elliptic_ZZ { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for FCL_Elliptic_ZZ { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for FCL_Elliptic_ZZ { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for FCL_Elliptic_ZZ { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(FCL_Elliptic_ZZ)) - .field(&self.address()) - .finish() - } - } - impl FCL_Elliptic_ZZ { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - FCL_ELLIPTIC_ZZ_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - FCL_ELLIPTIC_ZZ_ABI.clone(), - FCL_ELLIPTIC_ZZ_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for FCL_Elliptic_ZZ - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/helpers.rs b/xmtp_id/src/bindings/helpers.rs deleted file mode 100644 index 9b1f08d06..000000000 --- a/xmtp_id/src/bindings/helpers.rs +++ /dev/null @@ -1,70 +0,0 @@ -pub use helpers::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod helpers { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static HELPERS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct Helpers(::ethers::contract::Contract); - impl ::core::clone::Clone for Helpers { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Helpers { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Helpers { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Helpers { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Helpers)) - .field(&self.address()) - .finish() - } - } - impl Helpers { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - HELPERS_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for Helpers { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/i_aggregator.rs b/xmtp_id/src/bindings/i_aggregator.rs deleted file mode 100644 index 14186a7fb..000000000 --- a/xmtp_id/src/bindings/i_aggregator.rs +++ /dev/null @@ -1,384 +0,0 @@ -pub use i_aggregator::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_aggregator { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("aggregateSignatures"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("aggregateSignatures",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOps"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation[]"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("aggregatedSignature",), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("validateSignatures"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateSignatures"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOps"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation[]"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("signature"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("validateUserOpSignature"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateUserOpSignature",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sigForUserOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static IAGGREGATOR_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct IAggregator(::ethers::contract::Contract); - impl ::core::clone::Clone for IAggregator { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IAggregator { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IAggregator { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IAggregator { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IAggregator)) - .field(&self.address()) - .finish() - } - } - impl IAggregator { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IAGGREGATOR_ABI.clone(), - client, - )) - } - ///Calls the contract's `aggregateSignatures` (0x275e2d79) function - pub fn aggregate_signatures( - &self, - user_ops: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([39, 94, 45, 121], user_ops) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateSignatures` (0xe3563a4f) function - pub fn validate_signatures( - &self, - user_ops: ::std::vec::Vec, - signature: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([227, 86, 58, 79], (user_ops, signature)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateUserOpSignature` (0x64c530cd) function - pub fn validate_user_op_signature( - &self, - user_op: UserOperation, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([100, 197, 48, 205], (user_op,)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for IAggregator { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `aggregateSignatures` function with signature `aggregateSignatures((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])` and selector `0x275e2d79` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "aggregateSignatures", - abi = "aggregateSignatures((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])" - )] - pub struct AggregateSignaturesCall { - pub user_ops: ::std::vec::Vec, - } - ///Container type for all input parameters for the `validateSignatures` function with signature `validateSignatures((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes)` and selector `0xe3563a4f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "validateSignatures", - abi = "validateSignatures((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes)" - )] - pub struct ValidateSignaturesCall { - pub user_ops: ::std::vec::Vec, - pub signature: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateUserOpSignature` function with signature `validateUserOpSignature((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x64c530cd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "validateUserOpSignature", - abi = "validateUserOpSignature((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))" - )] - pub struct ValidateUserOpSignatureCall { - pub user_op: UserOperation, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IAggregatorCalls { - AggregateSignatures(AggregateSignaturesCall), - ValidateSignatures(ValidateSignaturesCall), - ValidateUserOpSignature(ValidateUserOpSignatureCall), - } - impl ::ethers::core::abi::AbiDecode for IAggregatorCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AggregateSignatures(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidateSignatures(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidateUserOpSignature(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IAggregatorCalls { - fn encode(self) -> Vec { - match self { - Self::AggregateSignatures(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateSignatures(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidateUserOpSignature(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for IAggregatorCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AggregateSignatures(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateSignatures(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateUserOpSignature(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IAggregatorCalls { - fn from(value: AggregateSignaturesCall) -> Self { - Self::AggregateSignatures(value) - } - } - impl ::core::convert::From for IAggregatorCalls { - fn from(value: ValidateSignaturesCall) -> Self { - Self::ValidateSignatures(value) - } - } - impl ::core::convert::From for IAggregatorCalls { - fn from(value: ValidateUserOpSignatureCall) -> Self { - Self::ValidateUserOpSignature(value) - } - } - ///Container type for all return fields from the `aggregateSignatures` function with signature `aggregateSignatures((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])` and selector `0x275e2d79` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AggregateSignaturesReturn { - pub aggregated_signature: ::ethers::core::types::Bytes, - } - ///Container type for all return fields from the `validateUserOpSignature` function with signature `validateUserOpSignature((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x64c530cd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ValidateUserOpSignatureReturn { - pub sig_for_user_op: ::ethers::core::types::Bytes, - } -} diff --git a/xmtp_id/src/bindings/i_entry_point.rs b/xmtp_id/src/bindings/i_entry_point.rs deleted file mode 100644 index 0d1866279..000000000 --- a/xmtp_id/src/bindings/i_entry_point.rs +++ /dev/null @@ -1,2546 +0,0 @@ -pub use i_entry_point::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_entry_point { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("addStake"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addStake"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_unstakeDelaySec"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("depositTo"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("depositTo"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getDepositInfo"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getDepositInfo"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("info"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(112usize), - ::ethers::core::abi::ethabi::ParamType::Bool, - ::ethers::core::abi::ethabi::ParamType::Uint(112usize), - ::ethers::core::abi::ethabi::ParamType::Uint(32usize), - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.DepositInfo", - ), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getNonce"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNonce"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 192usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint192"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getSenderAddress"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getSenderAddress"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("initCode"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("getUserOpHash"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getUserOpHash"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("handleAggregatedOps"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned( - "handleAggregatedOps", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("opsPerAggregator"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - ), - ), - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IEntryPoint.UserOpsPerAggregator[]", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("beneficiary"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("handleOps"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("handleOps"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("ops"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation[]"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("beneficiary"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("incrementNonce"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("incrementNonce"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 192usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint192"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateHandleOp"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateHandleOp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("op"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("target"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetCallData"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("simulateValidation"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("simulateValidation"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("unlockStake"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("unlockStake"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("withdrawStake"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("withdrawStake"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("withdrawTo"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("withdrawTo"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AccountDeployed"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("AccountDeployed"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("factory"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("paymaster"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("BeforeExecution"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("BeforeExecution"), - inputs: ::std::vec![], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Deposited"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Deposited"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalDeposit"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("SignatureAggregatorChanged"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "SignatureAggregatorChanged", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("aggregator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeLocked"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeLocked"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalStaked"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("unstakeDelaySec"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeUnlocked"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeUnlocked"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawTime"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeWithdrawn"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeWithdrawn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("UserOperationEvent"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("UserOperationEvent"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("paymaster"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("success"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("actualGasCost"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("actualGasUsed"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("UserOperationRevertReason"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned( - "UserOperationRevertReason", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( - 32usize, - ), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("revertReason"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("Withdrawn"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Withdrawn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("ExecutionResult"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("ExecutionResult"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("preOpGas"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("paid"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("validAfter"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint48"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("validUntil"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint48"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetSuccess"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("targetResult"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("FailedOp"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("FailedOp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("opIndex"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("reason"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("SenderAddressResult"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "SenderAddressResult", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("SignatureValidationFailed"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "SignatureValidationFailed", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("aggregator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ValidationResult"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("ValidationResult"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("returnInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bool, - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IEntryPoint.ReturnInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("senderInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("factoryInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("paymasterInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ], - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("ValidationResultWithAggregation"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned( - "ValidationResultWithAggregation", - ), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("returnInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bool, - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IEntryPoint.ReturnInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("senderInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("factoryInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("paymasterInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.StakeInfo", - ), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("aggregatorInfo"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ], - ), - ], - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IEntryPoint.AggregatorStakeInfo", - ), - ), - }, - ], - }, - ], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static IENTRYPOINT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct IEntryPoint(::ethers::contract::Contract); - impl ::core::clone::Clone for IEntryPoint { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IEntryPoint { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IEntryPoint { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IEntryPoint { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IEntryPoint)) - .field(&self.address()) - .finish() - } - } - impl IEntryPoint { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IENTRYPOINT_ABI.clone(), - client, - )) - } - ///Calls the contract's `addStake` (0x0396cb60) function - pub fn add_stake( - &self, - unstake_delay_sec: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([3, 150, 203, 96], unstake_delay_sec) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `depositTo` (0xb760faf9) function - pub fn deposit_to( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([183, 96, 250, 249], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getDepositInfo` (0x5287ce12) function - pub fn get_deposit_info( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 135, 206, 18], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getNonce` (0x35567e1a) function - pub fn get_nonce( - &self, - sender: ::ethers::core::types::Address, - key: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([53, 86, 126, 26], (sender, key)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getSenderAddress` (0x9b249f69) function - pub fn get_sender_address( - &self, - init_code: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([155, 36, 159, 105], init_code) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getUserOpHash` (0xa6193531) function - pub fn get_user_op_hash( - &self, - user_op: UserOperation, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([166, 25, 53, 49], (user_op,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `handleAggregatedOps` (0x4b1d7cf5) function - pub fn handle_aggregated_ops( - &self, - ops_per_aggregator: ::std::vec::Vec, - beneficiary: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([75, 29, 124, 245], (ops_per_aggregator, beneficiary)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `handleOps` (0x1fad948c) function - pub fn handle_ops( - &self, - ops: ::std::vec::Vec, - beneficiary: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([31, 173, 148, 140], (ops, beneficiary)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `incrementNonce` (0x0bd28e3b) function - pub fn increment_nonce( - &self, - key: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([11, 210, 142, 59], key) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateHandleOp` (0xd6383f94) function - pub fn simulate_handle_op( - &self, - op: UserOperation, - target: ::ethers::core::types::Address, - target_call_data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([214, 56, 63, 148], (op, target, target_call_data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `simulateValidation` (0xee219423) function - pub fn simulate_validation( - &self, - user_op: UserOperation, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([238, 33, 148, 35], (user_op,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `unlockStake` (0xbb9fe6bf) function - pub fn unlock_stake(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([187, 159, 230, 191], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdrawStake` (0xc23a5cea) function - pub fn withdraw_stake( - &self, - withdraw_address: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([194, 58, 92, 234], withdraw_address) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdrawTo` (0x205c2878) function - pub fn withdraw_to( - &self, - withdraw_address: ::ethers::core::types::Address, - withdraw_amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([32, 92, 40, 120], (withdraw_address, withdraw_amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `AccountDeployed` event - pub fn account_deployed_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AccountDeployedFilter> - { - self.0.event() - } - ///Gets the contract's `BeforeExecution` event - pub fn before_execution_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, BeforeExecutionFilter> - { - self.0.event() - } - ///Gets the contract's `Deposited` event - pub fn deposited_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositedFilter> { - self.0.event() - } - ///Gets the contract's `SignatureAggregatorChanged` event - pub fn signature_aggregator_changed_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - SignatureAggregatorChangedFilter, - > { - self.0.event() - } - ///Gets the contract's `StakeLocked` event - pub fn stake_locked_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeLockedFilter> - { - self.0.event() - } - ///Gets the contract's `StakeUnlocked` event - pub fn stake_unlocked_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeUnlockedFilter> - { - self.0.event() - } - ///Gets the contract's `StakeWithdrawn` event - pub fn stake_withdrawn_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeWithdrawnFilter> - { - self.0.event() - } - ///Gets the contract's `UserOperationEvent` event - pub fn user_operation_event_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UserOperationEventFilter> - { - self.0.event() - } - ///Gets the contract's `UserOperationRevertReason` event - pub fn user_operation_revert_reason_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - UserOperationRevertReasonFilter, - > { - self.0.event() - } - ///Gets the contract's `Withdrawn` event - pub fn withdrawn_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WithdrawnFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IEntryPointEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for IEntryPoint { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `ExecutionResult` with signature `ExecutionResult(uint256,uint256,uint48,uint48,bool,bytes)` and selector `0x8b7ac980` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "ExecutionResult", - abi = "ExecutionResult(uint256,uint256,uint48,uint48,bool,bytes)" - )] - pub struct ExecutionResult { - pub pre_op_gas: ::ethers::core::types::U256, - pub paid: ::ethers::core::types::U256, - pub valid_after: u64, - pub valid_until: u64, - pub target_success: bool, - pub target_result: ::ethers::core::types::Bytes, - } - ///Custom Error type `FailedOp` with signature `FailedOp(uint256,string)` and selector `0x220266b6` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "FailedOp", abi = "FailedOp(uint256,string)")] - pub struct FailedOp { - pub op_index: ::ethers::core::types::U256, - pub reason: ::std::string::String, - } - ///Custom Error type `SenderAddressResult` with signature `SenderAddressResult(address)` and selector `0x6ca7b806` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SenderAddressResult", abi = "SenderAddressResult(address)")] - pub struct SenderAddressResult { - pub sender: ::ethers::core::types::Address, - } - ///Custom Error type `SignatureValidationFailed` with signature `SignatureValidationFailed(address)` and selector `0x86a9f750` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "SignatureValidationFailed", - abi = "SignatureValidationFailed(address)" - )] - pub struct SignatureValidationFailed { - pub aggregator: ::ethers::core::types::Address, - } - ///Custom Error type `ValidationResult` with signature `ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))` and selector `0xe0cff05f` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "ValidationResult", - abi = "ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))" - )] - pub struct ValidationResult { - pub return_info: ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - bool, - u64, - u64, - ::ethers::core::types::Bytes, - ), - pub sender_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - pub factory_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - pub paymaster_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - } - ///Custom Error type `ValidationResultWithAggregation` with signature `ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))` and selector `0xfaecb4e4` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "ValidationResultWithAggregation", - abi = "ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))" - )] - pub struct ValidationResultWithAggregation { - pub return_info: ( - ::ethers::core::types::U256, - ::ethers::core::types::U256, - bool, - u64, - u64, - ::ethers::core::types::Bytes, - ), - pub sender_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - pub factory_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - pub paymaster_info: (::ethers::core::types::U256, ::ethers::core::types::U256), - pub aggregator_info: ( - ::ethers::core::types::Address, - (::ethers::core::types::U256, ::ethers::core::types::U256), - ), - } - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IEntryPointErrors { - ExecutionResult(ExecutionResult), - FailedOp(FailedOp), - SenderAddressResult(SenderAddressResult), - SignatureValidationFailed(SignatureValidationFailed), - ValidationResult(ValidationResult), - ValidationResultWithAggregation(ValidationResultWithAggregation), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for IEntryPointErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::ExecutionResult(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::FailedOp(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SenderAddressResult(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SignatureValidationFailed(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ValidationResult(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidationResultWithAggregation(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IEntryPointErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::ExecutionResult(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::FailedOp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SenderAddressResult(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SignatureValidationFailed(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ValidationResult(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidationResultWithAggregation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for IEntryPointErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => true, - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ if selector - == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for IEntryPointErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ExecutionResult(element) => ::core::fmt::Display::fmt(element, f), - Self::FailedOp(element) => ::core::fmt::Display::fmt(element, f), - Self::SenderAddressResult(element) => ::core::fmt::Display::fmt(element, f), - Self::SignatureValidationFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidationResult(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidationResultWithAggregation(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for IEntryPointErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: ExecutionResult) -> Self { - Self::ExecutionResult(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: FailedOp) -> Self { - Self::FailedOp(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: SenderAddressResult) -> Self { - Self::SenderAddressResult(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: SignatureValidationFailed) -> Self { - Self::SignatureValidationFailed(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: ValidationResult) -> Self { - Self::ValidationResult(value) - } - } - impl ::core::convert::From for IEntryPointErrors { - fn from(value: ValidationResultWithAggregation) -> Self { - Self::ValidationResultWithAggregation(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "AccountDeployed", - abi = "AccountDeployed(bytes32,address,address,address)" - )] - pub struct AccountDeployedFilter { - #[ethevent(indexed)] - pub user_op_hash: [u8; 32], - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - pub factory: ::ethers::core::types::Address, - pub paymaster: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "BeforeExecution", abi = "BeforeExecution()")] - pub struct BeforeExecutionFilter; - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposited", abi = "Deposited(address,uint256)")] - pub struct DepositedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub total_deposit: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "SignatureAggregatorChanged", - abi = "SignatureAggregatorChanged(address)" - )] - pub struct SignatureAggregatorChangedFilter { - #[ethevent(indexed)] - pub aggregator: ::ethers::core::types::Address, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "StakeLocked", abi = "StakeLocked(address,uint256,uint256)")] - pub struct StakeLockedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub total_staked: ::ethers::core::types::U256, - pub unstake_delay_sec: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "StakeUnlocked", abi = "StakeUnlocked(address,uint256)")] - pub struct StakeUnlockedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_time: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "StakeWithdrawn", - abi = "StakeWithdrawn(address,address,uint256)" - )] - pub struct StakeWithdrawnFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_address: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "UserOperationEvent", - abi = "UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)" - )] - pub struct UserOperationEventFilter { - #[ethevent(indexed)] - pub user_op_hash: [u8; 32], - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub paymaster: ::ethers::core::types::Address, - pub nonce: ::ethers::core::types::U256, - pub success: bool, - pub actual_gas_cost: ::ethers::core::types::U256, - pub actual_gas_used: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "UserOperationRevertReason", - abi = "UserOperationRevertReason(bytes32,address,uint256,bytes)" - )] - pub struct UserOperationRevertReasonFilter { - #[ethevent(indexed)] - pub user_op_hash: [u8; 32], - #[ethevent(indexed)] - pub sender: ::ethers::core::types::Address, - pub nonce: ::ethers::core::types::U256, - pub revert_reason: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Withdrawn", abi = "Withdrawn(address,address,uint256)")] - pub struct WithdrawnFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_address: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IEntryPointEvents { - AccountDeployedFilter(AccountDeployedFilter), - BeforeExecutionFilter(BeforeExecutionFilter), - DepositedFilter(DepositedFilter), - SignatureAggregatorChangedFilter(SignatureAggregatorChangedFilter), - StakeLockedFilter(StakeLockedFilter), - StakeUnlockedFilter(StakeUnlockedFilter), - StakeWithdrawnFilter(StakeWithdrawnFilter), - UserOperationEventFilter(UserOperationEventFilter), - UserOperationRevertReasonFilter(UserOperationRevertReasonFilter), - WithdrawnFilter(WithdrawnFilter), - } - impl ::ethers::contract::EthLogDecode for IEntryPointEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AccountDeployedFilter::decode_log(log) { - return Ok(IEntryPointEvents::AccountDeployedFilter(decoded)); - } - if let Ok(decoded) = BeforeExecutionFilter::decode_log(log) { - return Ok(IEntryPointEvents::BeforeExecutionFilter(decoded)); - } - if let Ok(decoded) = DepositedFilter::decode_log(log) { - return Ok(IEntryPointEvents::DepositedFilter(decoded)); - } - if let Ok(decoded) = SignatureAggregatorChangedFilter::decode_log(log) { - return Ok(IEntryPointEvents::SignatureAggregatorChangedFilter(decoded)); - } - if let Ok(decoded) = StakeLockedFilter::decode_log(log) { - return Ok(IEntryPointEvents::StakeLockedFilter(decoded)); - } - if let Ok(decoded) = StakeUnlockedFilter::decode_log(log) { - return Ok(IEntryPointEvents::StakeUnlockedFilter(decoded)); - } - if let Ok(decoded) = StakeWithdrawnFilter::decode_log(log) { - return Ok(IEntryPointEvents::StakeWithdrawnFilter(decoded)); - } - if let Ok(decoded) = UserOperationEventFilter::decode_log(log) { - return Ok(IEntryPointEvents::UserOperationEventFilter(decoded)); - } - if let Ok(decoded) = UserOperationRevertReasonFilter::decode_log(log) { - return Ok(IEntryPointEvents::UserOperationRevertReasonFilter(decoded)); - } - if let Ok(decoded) = WithdrawnFilter::decode_log(log) { - return Ok(IEntryPointEvents::WithdrawnFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IEntryPointEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AccountDeployedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::BeforeExecutionFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SignatureAggregatorChangedFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::StakeLockedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::StakeUnlockedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::StakeWithdrawnFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UserOperationEventFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UserOperationRevertReasonFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::WithdrawnFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: AccountDeployedFilter) -> Self { - Self::AccountDeployedFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: BeforeExecutionFilter) -> Self { - Self::BeforeExecutionFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: DepositedFilter) -> Self { - Self::DepositedFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: SignatureAggregatorChangedFilter) -> Self { - Self::SignatureAggregatorChangedFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: StakeLockedFilter) -> Self { - Self::StakeLockedFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: StakeUnlockedFilter) -> Self { - Self::StakeUnlockedFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: StakeWithdrawnFilter) -> Self { - Self::StakeWithdrawnFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: UserOperationEventFilter) -> Self { - Self::UserOperationEventFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: UserOperationRevertReasonFilter) -> Self { - Self::UserOperationRevertReasonFilter(value) - } - } - impl ::core::convert::From for IEntryPointEvents { - fn from(value: WithdrawnFilter) -> Self { - Self::WithdrawnFilter(value) - } - } - ///Container type for all input parameters for the `addStake` function with signature `addStake(uint32)` and selector `0x0396cb60` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addStake", abi = "addStake(uint32)")] - pub struct AddStakeCall { - pub unstake_delay_sec: u32, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `depositTo` function with signature `depositTo(address)` and selector `0xb760faf9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "depositTo", abi = "depositTo(address)")] - pub struct DepositToCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getDepositInfo` function with signature `getDepositInfo(address)` and selector `0x5287ce12` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getDepositInfo", abi = "getDepositInfo(address)")] - pub struct GetDepositInfoCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getNonce` function with signature `getNonce(address,uint192)` and selector `0x35567e1a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNonce", abi = "getNonce(address,uint192)")] - pub struct GetNonceCall { - pub sender: ::ethers::core::types::Address, - pub key: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `getSenderAddress` function with signature `getSenderAddress(bytes)` and selector `0x9b249f69` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getSenderAddress", abi = "getSenderAddress(bytes)")] - pub struct GetSenderAddressCall { - pub init_code: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `getUserOpHash` function with signature `getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0xa6193531` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getUserOpHash", - abi = "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))" - )] - pub struct GetUserOpHashCall { - pub user_op: UserOperation, - } - ///Container type for all input parameters for the `handleAggregatedOps` function with signature `handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)` and selector `0x4b1d7cf5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "handleAggregatedOps", - abi = "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)" - )] - pub struct HandleAggregatedOpsCall { - pub ops_per_aggregator: ::std::vec::Vec, - pub beneficiary: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `handleOps` function with signature `handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)` and selector `0x1fad948c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "handleOps", - abi = "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)" - )] - pub struct HandleOpsCall { - pub ops: ::std::vec::Vec, - pub beneficiary: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `incrementNonce` function with signature `incrementNonce(uint192)` and selector `0x0bd28e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "incrementNonce", abi = "incrementNonce(uint192)")] - pub struct IncrementNonceCall { - pub key: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `simulateHandleOp` function with signature `simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)` and selector `0xd6383f94` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "simulateHandleOp", - abi = "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)" - )] - pub struct SimulateHandleOpCall { - pub op: UserOperation, - pub target: ::ethers::core::types::Address, - pub target_call_data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `simulateValidation` function with signature `simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0xee219423` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "simulateValidation", - abi = "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))" - )] - pub struct SimulateValidationCall { - pub user_op: UserOperation, - } - ///Container type for all input parameters for the `unlockStake` function with signature `unlockStake()` and selector `0xbb9fe6bf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "unlockStake", abi = "unlockStake()")] - pub struct UnlockStakeCall; - ///Container type for all input parameters for the `withdrawStake` function with signature `withdrawStake(address)` and selector `0xc23a5cea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdrawStake", abi = "withdrawStake(address)")] - pub struct WithdrawStakeCall { - pub withdraw_address: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `withdrawTo` function with signature `withdrawTo(address,uint256)` and selector `0x205c2878` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdrawTo", abi = "withdrawTo(address,uint256)")] - pub struct WithdrawToCall { - pub withdraw_address: ::ethers::core::types::Address, - pub withdraw_amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IEntryPointCalls { - AddStake(AddStakeCall), - BalanceOf(BalanceOfCall), - DepositTo(DepositToCall), - GetDepositInfo(GetDepositInfoCall), - GetNonce(GetNonceCall), - GetSenderAddress(GetSenderAddressCall), - GetUserOpHash(GetUserOpHashCall), - HandleAggregatedOps(HandleAggregatedOpsCall), - HandleOps(HandleOpsCall), - IncrementNonce(IncrementNonceCall), - SimulateHandleOp(SimulateHandleOpCall), - SimulateValidation(SimulateValidationCall), - UnlockStake(UnlockStakeCall), - WithdrawStake(WithdrawStakeCall), - WithdrawTo(WithdrawToCall), - } - impl ::ethers::core::abi::AbiDecode for IEntryPointCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AddStake(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DepositTo(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetDepositInfo(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetSenderAddress(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::GetUserOpHash(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::HandleAggregatedOps(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::HandleOps(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IncrementNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SimulateHandleOp(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SimulateValidation(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UnlockStake(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::WithdrawStake(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::WithdrawTo(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IEntryPointCalls { - fn encode(self) -> Vec { - match self { - Self::AddStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DepositTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetDepositInfo(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetSenderAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetUserOpHash(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::HandleAggregatedOps(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::HandleOps(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IncrementNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SimulateHandleOp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SimulateValidation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UnlockStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::WithdrawStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::WithdrawTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IEntryPointCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddStake(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositTo(element) => ::core::fmt::Display::fmt(element, f), - Self::GetDepositInfo(element) => ::core::fmt::Display::fmt(element, f), - Self::GetNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::GetSenderAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::GetUserOpHash(element) => ::core::fmt::Display::fmt(element, f), - Self::HandleAggregatedOps(element) => ::core::fmt::Display::fmt(element, f), - Self::HandleOps(element) => ::core::fmt::Display::fmt(element, f), - Self::IncrementNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::SimulateHandleOp(element) => ::core::fmt::Display::fmt(element, f), - Self::SimulateValidation(element) => ::core::fmt::Display::fmt(element, f), - Self::UnlockStake(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawStake(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawTo(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: AddStakeCall) -> Self { - Self::AddStake(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: DepositToCall) -> Self { - Self::DepositTo(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: GetDepositInfoCall) -> Self { - Self::GetDepositInfo(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: GetNonceCall) -> Self { - Self::GetNonce(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: GetSenderAddressCall) -> Self { - Self::GetSenderAddress(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: GetUserOpHashCall) -> Self { - Self::GetUserOpHash(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: HandleAggregatedOpsCall) -> Self { - Self::HandleAggregatedOps(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: HandleOpsCall) -> Self { - Self::HandleOps(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: IncrementNonceCall) -> Self { - Self::IncrementNonce(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: SimulateHandleOpCall) -> Self { - Self::SimulateHandleOp(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: SimulateValidationCall) -> Self { - Self::SimulateValidation(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: UnlockStakeCall) -> Self { - Self::UnlockStake(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: WithdrawStakeCall) -> Self { - Self::WithdrawStake(value) - } - } - impl ::core::convert::From for IEntryPointCalls { - fn from(value: WithdrawToCall) -> Self { - Self::WithdrawTo(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getDepositInfo` function with signature `getDepositInfo(address)` and selector `0x5287ce12` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetDepositInfoReturn { - pub info: DepositInfo, - } - ///Container type for all return fields from the `getNonce` function with signature `getNonce(address,uint192)` and selector `0x35567e1a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNonceReturn { - pub nonce: ::ethers::core::types::U256, - } - ///Container type for all return fields from the `getUserOpHash` function with signature `getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0xa6193531` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetUserOpHashReturn(pub [u8; 32]); - ///`UserOpsPerAggregator((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct UserOpsPerAggregator { - pub user_ops: ::std::vec::Vec, - pub aggregator: ::ethers::core::types::Address, - pub signature: ::ethers::core::types::Bytes, - } -} diff --git a/xmtp_id/src/bindings/i_nonce_manager.rs b/xmtp_id/src/bindings/i_nonce_manager.rs deleted file mode 100644 index 03108d458..000000000 --- a/xmtp_id/src/bindings/i_nonce_manager.rs +++ /dev/null @@ -1,247 +0,0 @@ -pub use i_nonce_manager::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_nonce_manager { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("getNonce"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getNonce"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("sender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(192usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint192"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("nonce"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("incrementNonce"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("incrementNonce"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(192usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint192"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static INONCEMANAGER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct INonceManager(::ethers::contract::Contract); - impl ::core::clone::Clone for INonceManager { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for INonceManager { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for INonceManager { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for INonceManager { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(INonceManager)) - .field(&self.address()) - .finish() - } - } - impl INonceManager { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - INONCEMANAGER_ABI.clone(), - client, - )) - } - ///Calls the contract's `getNonce` (0x35567e1a) function - pub fn get_nonce( - &self, - sender: ::ethers::core::types::Address, - key: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([53, 86, 126, 26], (sender, key)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `incrementNonce` (0x0bd28e3b) function - pub fn increment_nonce( - &self, - key: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([11, 210, 142, 59], key) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for INonceManager - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `getNonce` function with signature `getNonce(address,uint192)` and selector `0x35567e1a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getNonce", abi = "getNonce(address,uint192)")] - pub struct GetNonceCall { - pub sender: ::ethers::core::types::Address, - pub key: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `incrementNonce` function with signature `incrementNonce(uint192)` and selector `0x0bd28e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "incrementNonce", abi = "incrementNonce(uint192)")] - pub struct IncrementNonceCall { - pub key: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum INonceManagerCalls { - GetNonce(GetNonceCall), - IncrementNonce(IncrementNonceCall), - } - impl ::ethers::core::abi::AbiDecode for INonceManagerCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetNonce(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IncrementNonce(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for INonceManagerCalls { - fn encode(self) -> Vec { - match self { - Self::GetNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IncrementNonce(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for INonceManagerCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::GetNonce(element) => ::core::fmt::Display::fmt(element, f), - Self::IncrementNonce(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for INonceManagerCalls { - fn from(value: GetNonceCall) -> Self { - Self::GetNonce(value) - } - } - impl ::core::convert::From for INonceManagerCalls { - fn from(value: IncrementNonceCall) -> Self { - Self::IncrementNonce(value) - } - } - ///Container type for all return fields from the `getNonce` function with signature `getNonce(address,uint192)` and selector `0x35567e1a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetNonceReturn { - pub nonce: ::ethers::core::types::U256, - } -} diff --git a/xmtp_id/src/bindings/i_stake_manager.rs b/xmtp_id/src/bindings/i_stake_manager.rs deleted file mode 100644 index c9552c1eb..000000000 --- a/xmtp_id/src/bindings/i_stake_manager.rs +++ /dev/null @@ -1,855 +0,0 @@ -pub use i_stake_manager::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod i_stake_manager { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("addStake"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addStake"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_unstakeDelaySec"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint32"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("depositTo"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("depositTo"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("getDepositInfo"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getDepositInfo"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("info"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(112usize), - ::ethers::core::abi::ethabi::ParamType::Bool, - ::ethers::core::abi::ethabi::ParamType::Uint(112usize), - ::ethers::core::abi::ethabi::ParamType::Uint(32usize), - ::ethers::core::abi::ethabi::ParamType::Uint(48usize), - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct IStakeManager.DepositInfo", - ), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("unlockStake"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("unlockStake"), - inputs: ::std::vec![], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("withdrawStake"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("withdrawStake"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("withdrawTo"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("withdrawTo"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address payable"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("withdrawAmount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Deposited"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Deposited"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalDeposit"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeLocked"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeLocked"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("totalStaked"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("unstakeDelaySec"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeUnlocked"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeUnlocked"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawTime"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("StakeWithdrawn"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("StakeWithdrawn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Withdrawn"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Withdrawn"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("withdrawAddress"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: false, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static ISTAKEMANAGER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct IStakeManager(::ethers::contract::Contract); - impl ::core::clone::Clone for IStakeManager { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IStakeManager { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IStakeManager { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IStakeManager { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IStakeManager)) - .field(&self.address()) - .finish() - } - } - impl IStakeManager { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - ISTAKEMANAGER_ABI.clone(), - client, - )) - } - ///Calls the contract's `addStake` (0x0396cb60) function - pub fn add_stake( - &self, - unstake_delay_sec: u32, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([3, 150, 203, 96], unstake_delay_sec) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `depositTo` (0xb760faf9) function - pub fn deposit_to( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([183, 96, 250, 249], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getDepositInfo` (0x5287ce12) function - pub fn get_deposit_info( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 135, 206, 18], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `unlockStake` (0xbb9fe6bf) function - pub fn unlock_stake(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([187, 159, 230, 191], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdrawStake` (0xc23a5cea) function - pub fn withdraw_stake( - &self, - withdraw_address: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([194, 58, 92, 234], withdraw_address) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdrawTo` (0x205c2878) function - pub fn withdraw_to( - &self, - withdraw_address: ::ethers::core::types::Address, - withdraw_amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([32, 92, 40, 120], (withdraw_address, withdraw_amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Deposited` event - pub fn deposited_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, DepositedFilter> { - self.0.event() - } - ///Gets the contract's `StakeLocked` event - pub fn stake_locked_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeLockedFilter> - { - self.0.event() - } - ///Gets the contract's `StakeUnlocked` event - pub fn stake_unlocked_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeUnlockedFilter> - { - self.0.event() - } - ///Gets the contract's `StakeWithdrawn` event - pub fn stake_withdrawn_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, StakeWithdrawnFilter> - { - self.0.event() - } - ///Gets the contract's `Withdrawn` event - pub fn withdrawn_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, WithdrawnFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, IStakeManagerEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for IStakeManager - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Deposited", abi = "Deposited(address,uint256)")] - pub struct DepositedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub total_deposit: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "StakeLocked", abi = "StakeLocked(address,uint256,uint256)")] - pub struct StakeLockedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub total_staked: ::ethers::core::types::U256, - pub unstake_delay_sec: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "StakeUnlocked", abi = "StakeUnlocked(address,uint256)")] - pub struct StakeUnlockedFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_time: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent( - name = "StakeWithdrawn", - abi = "StakeWithdrawn(address,address,uint256)" - )] - pub struct StakeWithdrawnFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_address: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Withdrawn", abi = "Withdrawn(address,address,uint256)")] - pub struct WithdrawnFilter { - #[ethevent(indexed)] - pub account: ::ethers::core::types::Address, - pub withdraw_address: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IStakeManagerEvents { - DepositedFilter(DepositedFilter), - StakeLockedFilter(StakeLockedFilter), - StakeUnlockedFilter(StakeUnlockedFilter), - StakeWithdrawnFilter(StakeWithdrawnFilter), - WithdrawnFilter(WithdrawnFilter), - } - impl ::ethers::contract::EthLogDecode for IStakeManagerEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = DepositedFilter::decode_log(log) { - return Ok(IStakeManagerEvents::DepositedFilter(decoded)); - } - if let Ok(decoded) = StakeLockedFilter::decode_log(log) { - return Ok(IStakeManagerEvents::StakeLockedFilter(decoded)); - } - if let Ok(decoded) = StakeUnlockedFilter::decode_log(log) { - return Ok(IStakeManagerEvents::StakeUnlockedFilter(decoded)); - } - if let Ok(decoded) = StakeWithdrawnFilter::decode_log(log) { - return Ok(IStakeManagerEvents::StakeWithdrawnFilter(decoded)); - } - if let Ok(decoded) = WithdrawnFilter::decode_log(log) { - return Ok(IStakeManagerEvents::WithdrawnFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for IStakeManagerEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DepositedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::StakeLockedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::StakeUnlockedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::StakeWithdrawnFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawnFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IStakeManagerEvents { - fn from(value: DepositedFilter) -> Self { - Self::DepositedFilter(value) - } - } - impl ::core::convert::From for IStakeManagerEvents { - fn from(value: StakeLockedFilter) -> Self { - Self::StakeLockedFilter(value) - } - } - impl ::core::convert::From for IStakeManagerEvents { - fn from(value: StakeUnlockedFilter) -> Self { - Self::StakeUnlockedFilter(value) - } - } - impl ::core::convert::From for IStakeManagerEvents { - fn from(value: StakeWithdrawnFilter) -> Self { - Self::StakeWithdrawnFilter(value) - } - } - impl ::core::convert::From for IStakeManagerEvents { - fn from(value: WithdrawnFilter) -> Self { - Self::WithdrawnFilter(value) - } - } - ///Container type for all input parameters for the `addStake` function with signature `addStake(uint32)` and selector `0x0396cb60` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addStake", abi = "addStake(uint32)")] - pub struct AddStakeCall { - pub unstake_delay_sec: u32, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `depositTo` function with signature `depositTo(address)` and selector `0xb760faf9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "depositTo", abi = "depositTo(address)")] - pub struct DepositToCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getDepositInfo` function with signature `getDepositInfo(address)` and selector `0x5287ce12` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getDepositInfo", abi = "getDepositInfo(address)")] - pub struct GetDepositInfoCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `unlockStake` function with signature `unlockStake()` and selector `0xbb9fe6bf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "unlockStake", abi = "unlockStake()")] - pub struct UnlockStakeCall; - ///Container type for all input parameters for the `withdrawStake` function with signature `withdrawStake(address)` and selector `0xc23a5cea` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdrawStake", abi = "withdrawStake(address)")] - pub struct WithdrawStakeCall { - pub withdraw_address: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `withdrawTo` function with signature `withdrawTo(address,uint256)` and selector `0x205c2878` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdrawTo", abi = "withdrawTo(address,uint256)")] - pub struct WithdrawToCall { - pub withdraw_address: ::ethers::core::types::Address, - pub withdraw_amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum IStakeManagerCalls { - AddStake(AddStakeCall), - BalanceOf(BalanceOfCall), - DepositTo(DepositToCall), - GetDepositInfo(GetDepositInfoCall), - UnlockStake(UnlockStakeCall), - WithdrawStake(WithdrawStakeCall), - WithdrawTo(WithdrawToCall), - } - impl ::ethers::core::abi::AbiDecode for IStakeManagerCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AddStake(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DepositTo(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetDepositInfo(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UnlockStake(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::WithdrawStake(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::WithdrawTo(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for IStakeManagerCalls { - fn encode(self) -> Vec { - match self { - Self::AddStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DepositTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetDepositInfo(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UnlockStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::WithdrawStake(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::WithdrawTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for IStakeManagerCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddStake(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositTo(element) => ::core::fmt::Display::fmt(element, f), - Self::GetDepositInfo(element) => ::core::fmt::Display::fmt(element, f), - Self::UnlockStake(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawStake(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawTo(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: AddStakeCall) -> Self { - Self::AddStake(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: DepositToCall) -> Self { - Self::DepositTo(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: GetDepositInfoCall) -> Self { - Self::GetDepositInfo(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: UnlockStakeCall) -> Self { - Self::UnlockStake(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: WithdrawStakeCall) -> Self { - Self::WithdrawStake(value) - } - } - impl ::core::convert::From for IStakeManagerCalls { - fn from(value: WithdrawToCall) -> Self { - Self::WithdrawTo(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getDepositInfo` function with signature `getDepositInfo(address)` and selector `0x5287ce12` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetDepositInfoReturn { - pub info: DepositInfo, - } -} diff --git a/xmtp_id/src/bindings/ierc721_token_receiver.rs b/xmtp_id/src/bindings/ierc721_token_receiver.rs deleted file mode 100644 index 5be56a4b6..000000000 --- a/xmtp_id/src/bindings/ierc721_token_receiver.rs +++ /dev/null @@ -1,165 +0,0 @@ -pub use ierc721_token_receiver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod ierc721_token_receiver { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([( - ::std::borrow::ToOwned::to_owned("onERC721Received"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("onERC721Received"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - )]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static IERC721TOKENRECEIVER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct IERC721TokenReceiver(::ethers::contract::Contract); - impl ::core::clone::Clone for IERC721TokenReceiver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for IERC721TokenReceiver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for IERC721TokenReceiver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for IERC721TokenReceiver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(IERC721TokenReceiver)) - .field(&self.address()) - .finish() - } - } - impl IERC721TokenReceiver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - IERC721TOKENRECEIVER_ABI.clone(), - client, - )) - } - ///Calls the contract's `onERC721Received` (0x150b7a02) function - pub fn on_erc721_received( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - p2: ::ethers::core::types::U256, - p3: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([21, 11, 122, 2], (p0, p1, p2, p3)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for IERC721TokenReceiver - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "onERC721Received", - abi = "onERC721Received(address,address,uint256,bytes)" - )] - pub struct OnERC721ReceivedCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - pub ::ethers::core::types::U256, - pub ::ethers::core::types::Bytes, - ); - ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OnERC721ReceivedReturn(pub [u8; 4]); -} diff --git a/xmtp_id/src/bindings/lib_clone.rs b/xmtp_id/src/bindings/lib_clone.rs deleted file mode 100644 index df0f5892b..000000000 --- a/xmtp_id/src/bindings/lib_clone.rs +++ /dev/null @@ -1,294 +0,0 @@ -pub use lib_clone::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod lib_clone { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DeploymentFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("DeploymentFailed"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ETHTransferFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("ETHTransferFailed"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("SaltDoesNotStartWith"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("SaltDoesNotStartWith",), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LIBCLONE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 +\xDE\xA0\xC2\x9C\x15\xB7e\x0E\xEC\xDA\xEA1=\xE6\x98\x87\xD5\x10\xF2\xB5$\x03Q\xEB\xF7\t\xB7B0\xB5ldsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static LIBCLONE_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 +\xDE\xA0\xC2\x9C\x15\xB7e\x0E\xEC\xDA\xEA1=\xE6\x98\x87\xD5\x10\xF2\xB5$\x03Q\xEB\xF7\t\xB7B0\xB5ldsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static LIBCLONE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct LibClone(::ethers::contract::Contract); - impl ::core::clone::Clone for LibClone { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LibClone { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LibClone { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LibClone { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LibClone)) - .field(&self.address()) - .finish() - } - } - impl LibClone { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - LIBCLONE_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LIBCLONE_ABI.clone(), - LIBCLONE_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for LibClone { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `DeploymentFailed` with signature `DeploymentFailed()` and selector `0x30116425` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "DeploymentFailed", abi = "DeploymentFailed()")] - pub struct DeploymentFailed; - ///Custom Error type `ETHTransferFailed` with signature `ETHTransferFailed()` and selector `0xb12d13eb` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "ETHTransferFailed", abi = "ETHTransferFailed()")] - pub struct ETHTransferFailed; - ///Custom Error type `SaltDoesNotStartWith` with signature `SaltDoesNotStartWith()` and selector `0x0c4549ef` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SaltDoesNotStartWith", abi = "SaltDoesNotStartWith()")] - pub struct SaltDoesNotStartWith; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum LibCloneErrors { - DeploymentFailed(DeploymentFailed), - ETHTransferFailed(ETHTransferFailed), - SaltDoesNotStartWith(SaltDoesNotStartWith), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LibCloneErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::DeploymentFailed(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ETHTransferFailed(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SaltDoesNotStartWith(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LibCloneErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::DeploymentFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ETHTransferFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SaltDoesNotStartWith(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LibCloneErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector - == ::selector() => - { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for LibCloneErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DeploymentFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::ETHTransferFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::SaltDoesNotStartWith(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LibCloneErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LibCloneErrors { - fn from(value: DeploymentFailed) -> Self { - Self::DeploymentFailed(value) - } - } - impl ::core::convert::From for LibCloneErrors { - fn from(value: ETHTransferFailed) -> Self { - Self::ETHTransferFailed(value) - } - } - impl ::core::convert::From for LibCloneErrors { - fn from(value: SaltDoesNotStartWith) -> Self { - Self::SaltDoesNotStartWith(value) - } - } -} diff --git a/xmtp_id/src/bindings/lib_string.rs b/xmtp_id/src/bindings/lib_string.rs deleted file mode 100644 index 75c86f646..000000000 --- a/xmtp_id/src/bindings/lib_string.rs +++ /dev/null @@ -1,260 +0,0 @@ -pub use lib_string::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod lib_string { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("HexLengthInsufficient"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("HexLengthInsufficient",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("TooBigForSmallString"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("TooBigForSmallString",), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static LIBSTRING_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 T\xF2H\x14\x86f*0e6]?\x16&\xBE{o\x9F\x86a\x0E\x1C$_\x1Cx1a\xE2\xC3b\xE7dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static LIBSTRING_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 T\xF2H\x14\x86f*0e6]?\x16&\xBE{o\x9F\x86a\x0E\x1C$_\x1Cx1a\xE2\xC3b\xE7dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static LIBSTRING_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct LibString(::ethers::contract::Contract); - impl ::core::clone::Clone for LibString { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for LibString { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for LibString { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for LibString { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(LibString)) - .field(&self.address()) - .finish() - } - } - impl LibString { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - LIBSTRING_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - LIBSTRING_ABI.clone(), - LIBSTRING_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for LibString { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `HexLengthInsufficient` with signature `HexLengthInsufficient()` and selector `0x2194895a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "HexLengthInsufficient", abi = "HexLengthInsufficient()")] - pub struct HexLengthInsufficient; - ///Custom Error type `TooBigForSmallString` with signature `TooBigForSmallString()` and selector `0xec92f9a3` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "TooBigForSmallString", abi = "TooBigForSmallString()")] - pub struct TooBigForSmallString; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum LibStringErrors { - HexLengthInsufficient(HexLengthInsufficient), - TooBigForSmallString(TooBigForSmallString), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for LibStringErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::HexLengthInsufficient(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::TooBigForSmallString(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for LibStringErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::HexLengthInsufficient(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::TooBigForSmallString(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for LibStringErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => - { - true - } - _ if selector - == ::selector() => - { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for LibStringErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::HexLengthInsufficient(element) => ::core::fmt::Display::fmt(element, f), - Self::TooBigForSmallString(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for LibStringErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for LibStringErrors { - fn from(value: HexLengthInsufficient) -> Self { - Self::HexLengthInsufficient(value) - } - } - impl ::core::convert::From for LibStringErrors { - fn from(value: TooBigForSmallString) -> Self { - Self::TooBigForSmallString(value) - } - } -} diff --git a/xmtp_id/src/bindings/mock_coinbase_smart_wallet.rs b/xmtp_id/src/bindings/mock_coinbase_smart_wallet.rs deleted file mode 100644 index e93d52b6c..000000000 --- a/xmtp_id/src/bindings/mock_coinbase_smart_wallet.rs +++ /dev/null @@ -1,2710 +0,0 @@ -pub use mock_coinbase_smart_wallet::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_coinbase_smart_wallet { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![], - }), - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("REPLAYABLE_NONCE_KEY"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("REPLAYABLE_NONCE_KEY",), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("canSkipChainIdValidation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("canSkipChainIdValidation",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("functionSelector"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("domainSeparator"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("domainSeparator"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("eip712Domain"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("eip712Domain"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("fields"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(1usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes1"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("version"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("chainId"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("verifyingContract"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("salt"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("extensions"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256[]"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("entryPoint"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("entryPoint"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("execute"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("execute"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("target"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("executeBatch"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("executeBatch"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("calls"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct CoinbaseSmartWallet.Call[]", - ), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - }, - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("executeBatch"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("filler"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("calls"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize - ), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned( - "struct CoinbaseSmartWallet.Call[]", - ), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("executeWithoutChainIdValidation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("executeWithoutChainIdValidation",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("getUserOpHashWithoutChainId"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getUserOpHashWithoutChainId",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("implementation"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("implementation"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("$"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owners"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Bytes, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes[]"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isValidSignature"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isValidSignature"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("signature"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("result"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("proxiableUUID"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("proxiableUUID"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("replaySafeHash"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("replaySafeHash"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("hash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("newImplementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("validateUserOp"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateUserOp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("missingAccountFunds",), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("validationData"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AddOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("AddOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("RemoveOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("RemoveOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Upgraded"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Upgraded"), - inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("implementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - },], - anonymous: false, - },], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Initialized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Initialized"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidNonceKey"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidNonceKey"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("key"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("SelectorNotAllowed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("SelectorNotAllowed"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("selector"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Unauthorized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Unauthorized"), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - inputs: ::std::vec![], - },], - ), - ]), - receive: true, - fallback: true, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKCOINBASESMARTWALLET_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\xA0`@R0`\x80R4\x80\x15b\0\0\x15W`\0\x80\xFD[P`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R`\0\x91\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81b\0\0-W\x90PP`@\x80Q`\0` \x82\x01R\x91\x92P\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x81`\0\x81Q\x81\x10b\0\0wWb\0\0wb\0\x03\x8DV[` \x90\x81\x02\x91\x90\x91\x01\x01Rb\0\0\x8D\x81b\0\0\xA7V[P`\0`\0\x80Q` b\08\xEE\x839\x81Q\x91RUb\0\x05\xC3V[`\0[\x81Q\x81\x10\x15b\0\x029W\x81\x81\x81Q\x81\x10b\0\0\xC9Wb\0\0\xC9b\0\x03\x8DV[` \x02` \x01\x01QQ` \x14\x15\x80\x15b\0\x01\x01WP\x81\x81\x81Q\x81\x10b\0\0\xF3Wb\0\0\xF3b\0\x03\x8DV[` \x02` \x01\x01QQ`@\x14\x15[\x15b\0\x01IW\x81\x81\x81Q\x81\x10b\0\x01\x1CWb\0\x01\x1Cb\0\x03\x8DV[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01b\0\x01@\x91\x90b\0\x03\xC9V[`@Q\x80\x91\x03\x90\xFD[\x81\x81\x81Q\x81\x10b\0\x01^Wb\0\x01^b\0\x03\x8DV[` \x02` \x01\x01QQ` \x14\x80\x15b\0\x01\xA6WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10b\0\x01\x91Wb\0\x01\x91b\0\x03\x8DV[` \x02` \x01\x01Qb\0\x01\xA4\x90b\0\x03\xFEV[\x11[\x15b\0\x01\xE5W\x81\x81\x81Q\x81\x10b\0\x01\xC1Wb\0\x01\xC1b\0\x03\x8DV[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01b\0\x01@\x91\x90b\0\x03\xC9V[b\0\x020\x82\x82\x81Q\x81\x10b\0\x01\xFEWb\0\x01\xFEb\0\x03\x8DV[` \x02` \x01\x01Qb\0\x02\x16b\0\x02=` \x1B` \x1CV[\x80T\x90`\0b\0\x02&\x83b\0\x04&V[\x90\x91UPb\0\x02PV[`\x01\x01b\0\0\xAAV[PPV[`\0\x80Q` b\08\xEE\x839\x81Q\x91R\x90V[b\0\x02[\x82b\0\x039V[\x15b\0\x02~W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01b\0\x01@\x91\x90b\0\x03\xC9V[`\x01`\0\x80Q` b\08\xEE\x839\x81Q\x91R`\x02\x01\x83`@Qb\0\x02\xA3\x91\x90b\0\x04NV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81b\0\x02\xDB`\0\x80Q` b\08\xEE\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90b\0\x02\xFA\x90\x82b\0\x04\xF7V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qb\0\x03-\x91\x90b\0\x03\xC9V[`@Q\x80\x91\x03\x90\xA2PPV[`\0`\0\x80Q` b\08\xEE\x839\x81Q\x91R`\x02\x01\x82`@Qb\0\x03^\x91\x90b\0\x04NV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15b\0\x03\xC0W\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x03\xA6V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Rb\0\x03\xEA\x81`@\x85\x01` \x87\x01b\0\x03\xA3V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15b\0\x04 W`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0`\x01\x82\x01b\0\x04GWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\0\x82Qb\0\x04b\x81\x84` \x87\x01b\0\x03\xA3V[\x91\x90\x91\x01\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x04\x81W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x04 WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[`\x1F\x82\x11\x15b\0\x04\xF2W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x04\xCDWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x04\xEEW\x82\x81U`\x01\x01b\0\x04\xD9V[PPP[PPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x05\x13Wb\0\x05\x13b\0\x03wV[b\0\x05+\x81b\0\x05$\x84Tb\0\x04lV[\x84b\0\x04\xA2V[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x05cW`\0\x84\x15b\0\x05JWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x04\xEEV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x05\x94W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x05sV[P\x85\x82\x10\x15b\0\x05\xB3W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x80Qa3\x08b\0\x05\xE6`\09`\0\x81\x81a\x08L\x01Ra\t\x83\x01Ra3\x08`\0\xF3\xFE`\x80`@R`\x046\x10a\x01jW`\x005`\xE0\x1C\x80co-\xE7\x0E\x11a\0\xD1W\x80c\xA2\xE1\xA8\xD8\x11a\0\x8AW\x80c\xBFk\xA1\xFC\x11a\0dW\x80c\xBFk\xA1\xFC\x14a\x04\\W\x80c\xCE\x15\x06\xBE\x14a\x04oW\x80c\xD9H\xFD.\x14a\x04\x8FW\x80c\xF6\x98\xDA%\x14a\x04\xB1Wa\x01qV[\x80c\xA2\xE1\xA8\xD8\x14a\x04\x02W\x80c\xB0\xD6\x91\xFE\x14a\x04\"W\x80c\xB6\x1D'\xF6\x14a\x04IWa\x01qV[\x80co-\xE7\x0E\x14a\x03DW\x80cr\xDE;Z\x14a\x03WW\x80c\x84\xB0\x19n\x14a\x03wW\x80c\x88\xCEL|\x14a\x03\x9FW\x80c\x8E\xA6\x90)\x14a\x03\xB5W\x80c\x9F\x9B\xCB4\x14a\x03\xE2Wa\x01qV[\x80c:\x87\x1C\xDD\x11a\x01#W\x80c:\x87\x1C\xDD\x14a\x02\x80W\x80cO\x1E\xF2\x86\x14a\x02\xA1W\x80cOn\x7F\"\x14a\x02\xB4W\x80cR\xD1\x90-\x14a\x02\xD4W\x80cW\x7F<\xBF\x14a\x02\xE9W\x80c\\`\xDA\x1B\x14a\x02\xFCWa\x01qV[\x80c\x06j\x1E\xB7\x14a\x01\x9FW\x80c\x0F\x0F?$\x14a\x01\xD4W\x80c\x16&\xBA~\x14a\x01\xF4W\x80c\x1C\xA59?\x14a\x02-W\x80c)V^;\x14a\x02MW\x80c4\xFC\xD5\xBE\x14a\x02mWa\x01qV[6a\x01qW\0[`\x005`\xE0\x1Cc\xBC\x19|\x81\x81\x14c\xF2:na\x82\x14\x17c\x15\x0Bz\x02\x82\x14\x17\x15a\x01\x9DW\x80` R` `<\xF3[\0[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xBFa\x01\xBA6`\x04a'\xCFV[a\x04\xC6V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xE0W`\0\x80\xFD[Pa\x01\x9Da\x01\xEF6`\x04a(\rV[a\x055V[4\x80\x15a\x02\0W`\0\x80\xFD[Pa\x02\x14a\x02\x0F6`\x04a(pV[a\x05mV[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x01\xCBV[4\x80\x15a\x029W`\0\x80\xFD[Pa\x01\xBFa\x02H6`\x04a)\xA6V[a\x05\xA7V[4\x80\x15a\x02YW`\0\x80\xFD[Pa\x01\x9Da\x02h6`\x04a'\xCFV[a\x05\xE2V[a\x01\x9Da\x02{6`\x04a*\x1EV[a\x06\x0BV[a\x02\x93a\x02\x8E6`\x04a*xV[a\x07\x0FV[`@Q\x90\x81R` \x01a\x01\xCBV[a\x01\x9Da\x02\xAF6`\x04a*\xC5V[a\x08JV[4\x80\x15a\x02\xC0W`\0\x80\xFD[Pa\x02\x93a\x02\xCF6`\x04a*\xFEV[a\t.V[4\x80\x15a\x02\xE0W`\0\x80\xFD[Pa\x02\x93a\t\x7FV[a\x01\x9Da\x02\xF76`\x04a+2V[a\t\xDFV[4\x80\x15a\x03\x08W`\0\x80\xFD[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xCBV[a\x01\x9Da\x03R6`\x04a*\x1EV[a\n\x17V[4\x80\x15a\x03cW`\0\x80\xFD[Pa\x01\x9Da\x03r6`\x04a+pV[a\nWV[4\x80\x15a\x03\x83W`\0\x80\xFD[Pa\x03\x8Ca\x0BDV[`@Qa\x01\xCB\x97\x96\x95\x94\x93\x92\x91\x90a+\xD9V[4\x80\x15a\x03\xABW`\0\x80\xFD[Pa\x02\x93a!\x05\x81V[4\x80\x15a\x03\xC1W`\0\x80\xFD[Pa\x03\xD5a\x03\xD06`\x04a+pV[a\x0BkV[`@Qa\x01\xCB\x91\x90a,rV[4\x80\x15a\x03\xEEW`\0\x80\xFD[Pa\x01\xBFa\x03\xFD6`\x04a,\x85V[a\x0C,V[4\x80\x15a\x04\x0EW`\0\x80\xFD[Pa\x01\xBFa\x04\x1D6`\x04a(\rV[a\x0C\xA8V[4\x80\x15a\x04.W`\0\x80\xFD[Ps_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89a\x03,V[a\x01\x9Da\x04W6`\x04a,\xAFV[a\x0C\xEEV[a\x01\x9Da\x04j6`\x04a-\x08V[a\rRV[4\x80\x15a\x04{W`\0\x80\xFD[Pa\x02\x93a\x04\x8A6`\x04a+pV[a\x0E\x13V[4\x80\x15a\x04\x9BW`\0\x80\xFD[P`\0\x80Q` a2\xB3\x839\x81Q\x91RTa\x02\x93V[4\x80\x15a\x04\xBDW`\0\x80\xFD[Pa\x02\x93a\x0E\x1EV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\x19\x91a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P[\x92\x91PPV[a\x05=a\x0E\xA4V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x05j\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x0E\xD6V[PV[`\0a\x05\x82a\x05{\x85a\x0E\x13V[\x84\x84a\x0F\x01V[\x15a\x05\x95WPc\x0B\x13]?`\xE1\x1Ba\x05\xA0V[P`\x01`\x01`\xE0\x1B\x03\x19[\x93\x92PPPV[`\0`\0\x80Q` a2\xB3\x839\x81Q\x91R`\x02\x01\x82`@Qa\x05\xC9\x91\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x05\xEAa\x0E\xA4V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x06\x07\x90``\x01a\x05VV[PPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x06.Wa\x06.a\x0E\xA4V[`\0[\x81\x81\x10\x15a\x07\nWa\x07\x02\x83\x83\x83\x81\x81\x10a\x06NWa\x06Na-YV[\x90P` \x02\x81\x01\x90a\x06`\x91\x90a-oV[a\x06n\x90` \x81\x01\x90a(\rV[\x84\x84\x84\x81\x81\x10a\x06\x80Wa\x06\x80a-YV[\x90P` \x02\x81\x01\x90a\x06\x92\x91\x90a-oV[` \x015\x85\x85\x85\x81\x81\x10a\x06\xA8Wa\x06\xA8a-YV[\x90P` \x02\x81\x01\x90a\x06\xBA\x91\x90a-oV[a\x06\xC8\x90`@\x81\x01\x90a-\x85V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[`\x01\x01a\x061V[PPPV[`\x003s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x07DW`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x85\x015`@\x1C`\x04a\x07\\``\x88\x01\x88a-\x85V[\x90P\x10\x15\x80\x15a\x07\xA0WPa\x07t``\x87\x01\x87a-\x85V[a\x07\x83\x91`\x04\x91`\0\x91a-\xCBV[a\x07\x8C\x91a-\xF5V[`\x01`\x01`\xE0\x1B\x03\x19\x16c\xBFk\xA1\xFC`\xE0\x1B\x14[\x15a\x07\xDFWa\x07\xAE\x86a\t.V[\x94Pa!\x05\x81\x14a\x07\xDAW`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[a\x08\x04V[a!\x05\x81\x03a\x08\x04W`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x07\xD1V[a\x08\x1B\x85a\x08\x16a\x01@\x89\x01\x89a-\x85V[a\x0F\x01V[\x15a\x08*W`\0\x92PPa\x080V[`\x01\x92PP[\x80\x15a\x08BW`\08`\08\x843Z\xF1P[P\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\x08\x80Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[a\x08\x89\x84a\x10\x86V[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x08\xDBWcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\t(W`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\t&W=`\0\x82>=\x81\xFD[P[PPPPV[`\0a\t9\x82a\x10\x8EV[`@\x80Q` \x81\x01\x92\x90\x92Rs_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x90\x82\x01R``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\t\xB7Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91P[P\x90V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\n\x02Wa\n\x02a\x0E\xA4V[`@\x83\x06`@Q\x01`@Ra\x07\n\x82\x82a\x06\x0BV[`\0\x80Q` a2\xB3\x839\x81Q\x91RT\x15a\nEW`@Qc\x02\xEDT=`\xE5\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\x07a\nR\x82\x84a.%V[a\x10\xA7V[a\n_a\x0E\xA4V[`\0a\nj\x82a\x0BkV[\x90P\x80Q`\0\x03a\n\x91W`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01a\x07\xD1V[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\n\xC1\x90\x83\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\n\xED`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x0B\x08\x91a'\x85V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x0B8\x91\x90a,rV[`@Q\x80\x91\x03\x90\xA2PPV[`\x0F`\xF8\x1B``\x80`\0\x80\x80\x83a\x0BYa\x11\xF9V[\x97\x98\x90\x97\x96PF\x95P0\x94P\x91\x92P\x90V[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x0B\xA7\x90a.\xAAV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0B\xD3\x90a.\xAAV[\x80\x15a\x0C W\x80`\x1F\x10a\x0B\xF5Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0C V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C\x03W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c)V^;`\xE0\x1B\x14\x80a\x0C]WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x03\xC3\xCF\xC9`\xE2\x1B\x14[\x80a\x0CxWP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c9o\x1D\xAD`\xE1\x1B\x14[\x80a\x0C\x93WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c'\x8FyC`\xE1\x1B\x14[\x15a\x0C\xA0WP`\x01\x91\x90PV[P`\0\x91\x90PV[`\0`\0\x80Q` a2\xB3\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\xC9\x91a-=V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x11Wa\r\x11a\x0E\xA4V[a\t(\x84\x84\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x85W`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\x94`\x04\x82\x84\x86a-\xCBV[a\r\x9D\x91a-\xF5V[\x90Pa\r\xA8\x81a\x0C,V[a\r\xD1W`@Qc\x1D\x83p\xA3`\xE1\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`\x04\x82\x01R`$\x01a\x07\xD1V[a\x07\n0`\0\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[`\0a\x05/\x82a\x12@V[`\0\x80`\0a\x0E+a\x11\xF9V[\x81Q` \x80\x84\x01\x91\x90\x91 \x82Q\x82\x84\x01 `@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x94\x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R\x91\x93P\x91P`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x90V[a\x0E\xAD3a\x0C\xA8V[\x80a\x0E\xB7WP30\x14[\x15a\x0E\xBEWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05j\x81`\0\x80Q` a2\xB3\x839\x81Q\x91R[\x80T\x90`\0a\x0E\xF8\x83a.\xF4V[\x91\x90PUa\x12vV[`\0\x80a\x0F\x10\x83\x85\x01\x85a/\rV[\x90P`\0a\x0F!\x82`\0\x01Qa\x0BkV[\x90P\x80Q` \x03a\x0F\x80W`\x01`\x01`\xA0\x1B\x03a\x0F=\x82a/\x99V[\x11\x15a\x0F^W\x80`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\0` \x82\x01Q\x90Pa\x0Fv\x81\x88\x85` \x01Qa\x13EV[\x93PPPPa\x05\xA0V[\x80Q`@\x03a\x0F\xFBW`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x0F\xA0\x91\x90a/\xBDV[\x91P\x91P`\0\x84` \x01Q\x80` \x01\x90Q\x81\x01\x90a\x0F\xBE\x91\x90a0&V[\x90Pa\x0F\xEF\x89`@Q` \x01a\x0F\xD6\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\0\x83\x86\x86a\x14JV[\x95PPPPPPa\x05\xA0V[\x80`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84\x84`@Qa\x102\x91\x90a-=V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x10oW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x10tV[``\x91P[P\x91P\x91P\x81a\t&W\x80Q` \x82\x01\xFD[a\x05ja\x0E\xA4V[`\0a\x10\x99\x82a\x17\xBAV[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x81Q\x81\x10\x15a\x06\x07W\x81\x81\x81Q\x81\x10a\x10\xC5Wa\x10\xC5a-YV[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x10\xF9WP\x81\x81\x81Q\x81\x10a\x10\xEBWa\x10\xEBa-YV[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x112W\x81\x81\x81Q\x81\x10a\x11\x10Wa\x11\x10a-YV[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[\x81\x81\x81Q\x81\x10a\x11DWa\x11Da-YV[` \x02` \x01\x01QQ` \x14\x80\x15a\x11\x86WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x11sWa\x11sa-YV[` \x02` \x01\x01Qa\x11\x84\x90a/\x99V[\x11[\x15a\x11\xBFW\x81\x81\x81Q\x81\x10a\x11\x9DWa\x11\x9Da-YV[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[a\x11\xF1\x82\x82\x81Q\x81\x10a\x11\xD4Wa\x11\xD4a-YV[` \x02` \x01\x01Qa\x0E\xEA`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\x01\x01a\x10\xAAV[`@\x80Q\x80\x82\x01\x82R`\x15\x81Rt\x10\xDB\xDA[\x98\x98\\\xD9H\x14\xDBX\\\x9D\x08\x15\xD8[\x1B\x19]`Z\x1B` \x80\x83\x01\x91\x90\x91R\x82Q\x80\x84\x01\x90\x93R`\x01\x83R`1`\xF8\x1B\x90\x83\x01R\x91V[`\0a\x12Ja\x0E\x1EV[a\x12S\x83a\x18\x8DV[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x92\x90\x92R`B\x82\x01R`b\x01a\tbV[a\x12\x7F\x82a\x05\xA7V[\x15a\x12\x9FW\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\x01`\0\x80Q` a2\xB3\x839\x81Q\x91R`\x02\x01\x83`@Qa\x12\xC1\x91\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x12\xF7`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x13\x14\x90\x82a11V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x0B8\x91\x90a,rV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91`\0\x83\x15a\x05\xA0W`@Q\x83`\0R` \x83\x01Q`@R`@\x83Q\x03a\x13\xB5W`@\x83\x01Q`\x1B\x81`\xFF\x1C\x01` R\x80`\x01\x1B`\x01\x1C``RP` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\xB3WP`\0``R`@RP`\x01a\x05\xA0V[P[`A\x83Q\x03a\x13\xFBW``\x83\x01Q`\0\x1A` R`@\x83\x01Q``R` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\xF9WP`\0``R`@RP`\x01a\x05\xA0V[P[`\0``R\x80`@Rc\x16&\xBA~`\xE0\x1B\x80\x82R\x84`\x04\x83\x01R`$\x82\x01`@\x81R\x84Q` \x01\x80`D\x85\x01\x82\x88`\x04Z\xFAPP` \x81`D=\x01\x85\x8AZ\xFA\x90Q\x90\x91\x14\x16\x91PP\x93\x92PPPV[`\0\x7F\x7F\xFF\xFF\xFF\x80\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDEs}V\xD3\x8B\xCFBy\xDC\xE5a~1\x92\xA8\x84`\xA0\x01Q\x11\x15a\x14\x80WP`\0a\x17\xB1V[``\x84\x01Q`\0\x90a\x14\xA3\x90a\x14\x97\x81`\x15a1\xF0V[` \x88\x01Q\x91\x90a\x18\xC8V[\x90P\x7F\xFF\x1A*\x91v\xD6P\xE4\xA9\x9D\xED\xB5\x8F\x17\x93\095\x13\x05y\xFE\x17\xB5\xA3\xF6\x98\xAC[\0\xE64\x81\x80Q\x90` \x01 \x14a\x14\xDDW`\0\x91PPa\x17\xB1V[`\0a\x14\xEB\x88`\x01\x80a\x19.V[`@Q` \x01a\x14\xFB\x91\x90a2\x03V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x153\x87`@\x01Q\x83Q\x89`@\x01Qa\x15'\x91\x90a1\xF0V[` \x8A\x01Q\x91\x90a\x18\xC8V[\x90P\x81\x80Q\x90` \x01 \x81\x80Q\x90` \x01 \x14a\x15VW`\0\x93PPPPa\x17\xB1V[\x86Q\x80Q`\x01`\xF8\x1B\x91\x82\x91` \x90\x81\x10a\x15sWa\x15sa-YV[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14a\x15\x94W`\0\x93PPPPa\x17\xB1V[\x87\x80\x15a\x15\xCCWP\x86Q\x80Q`\x01`\xFA\x1B\x91\x82\x91` \x90\x81\x10a\x15\xB9Wa\x15\xB9a-YV[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14\x15[\x15a\x15\xDDW`\0\x93PPPPa\x17\xB1V[`\0`\x02\x88` \x01Q`@Qa\x15\xF3\x91\x90a-=V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16\x10W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x163\x91\x90a2DV[\x90P`\0`\x02\x89`\0\x01Q\x83`@Q` \x01a\x16P\x92\x91\x90a2]V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16j\x91a-=V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16\x87W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\xAA\x91\x90a2DV[`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x93\x90\x93R``\x83\x01R\x91\x81\x01\x8B\x90R\x90\x81\x01\x89\x90R\x90\x91P`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80a\x01\0`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x17\x10\x91\x90a-=V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x17KW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x17PV[``\x91P[P\x80Q\x91\x93P\x91P\x15\x15\x82\x80\x15a\x17dWP\x80[\x15a\x17\x90W\x81\x80` \x01\x90Q\x81\x01\x90a\x17}\x91\x90a2DV[`\x01\x14\x99PPPPPPPPPPa\x17\xB1V[a\x17\xA5\x85\x8E`\x80\x01Q\x8F`\xA0\x01Q\x8F\x8Fa\x1A#V[\x99PPPPPPPPPP[\x95\x94PPPPPV[``\x815` \x83\x015`\0a\x17\xDAa\x17\xD5`@\x87\x01\x87a-\x85V[a\x1B\x06V[\x90P`\0a\x17\xEEa\x17\xD5``\x88\x01\x88a-\x85V[\x90P`\x80\x86\x015`\xA0\x87\x015`\xC0\x88\x015`\xE0\x89\x015a\x01\0\x8A\x015`\0a\x18\x1Da\x17\xD5a\x01 \x8E\x01\x8Ea-\x85V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x9C\x90\x9C\x16` \x8D\x01R\x8B\x81\x01\x9A\x90\x9AR``\x8B\x01\x98\x90\x98RP`\x80\x89\x01\x95\x90\x95R`\xA0\x88\x01\x93\x90\x93R`\xC0\x87\x01\x91\x90\x91R`\xE0\x86\x01Ra\x01\0\x85\x01Ra\x01 \x84\x01Ra\x01@\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81Ra\x01`\x90\x92\x01\x90R\x92\x91PPV[`@\x80Q\x7F\x9BI=\"!\x05\xFE\xE7\xDF\x16:\xB5\xD5\x7F\x0B\xF1\xFF\xD2\xDA\x04\xDD_\xAF\xBE\x10\xB5LA\xC1\xAD\xC6W` \x82\x01R\x90\x81\x01\x82\x90R`\0\x90``\x01a\tbV[``\x83Q\x82\x81\x11a\x18\xD7W\x80\x92P[\x83\x81\x11a\x18\xE2W\x80\x93P[P\x81\x83\x10\x15a\x05\xA0WP`@Q\x82\x82\x03\x80\x82R\x93\x83\x01\x93`\x1F\x19`\x1F\x82\x01\x81\x16[\x86\x81\x01Q\x84\x82\x01R\x81\x01\x80a\x19\x03WP`\0\x83\x83\x01` \x01R`?\x90\x91\x01\x16\x81\x01`@R\x93\x92PPPV[``\x83Q\x80\x15a\x08BW`\x03`\x02\x82\x01\x04`\x02\x1B`@Q\x92P\x7FABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`\x1FRa\x06p\x85\x15\x02\x7Fghijklmnopqrstuvwxyz0123456789-_\x18`?R` \x83\x01\x81\x81\x01\x83\x88` \x01\x01\x80Q`\0\x82R[`\x03\x8A\x01\x99P\x89Q`?\x81`\x12\x1C\x16Q`\0S`?\x81`\x0C\x1C\x16Q`\x01S`?\x81`\x06\x1C\x16Q`\x02S`?\x81\x16Q`\x03SP`\0Q\x84R`\x04\x84\x01\x93P\x82\x84\x10a\x19\xAAW\x90R` \x01`@Ra==`\xF0\x1B`\x03\x84\x06`\x02\x04\x80\x83\x03\x91\x90\x91R`\0\x86\x15\x15\x90\x91\x02\x91\x82\x90\x03R\x90\x03\x82RP\x93\x92PPPV[`\0\x84\x15\x80a\x1A@WP`\0\x80Q` a2\x93\x839\x81Q\x91R\x85\x10\x15[\x80a\x1AIWP\x83\x15[\x80a\x1AbWP`\0\x80Q` a2\x93\x839\x81Q\x91R\x84\x10\x15[\x15a\x1AoWP`\0a\x17\xB1V[a\x1Ay\x83\x83a\x1B\x19V[a\x1A\x85WP`\0a\x17\xB1V[`\0a\x1A\x90\x85a\x1C\x13V[\x90P`\0`\0\x80Q` a2\x93\x839\x81Q\x91R\x82\x89\t\x90P`\0`\0\x80Q` a2\x93\x839\x81Q\x91R\x83\x89\t\x90P`\0a\x1A\xCC\x87\x87\x85\x85a\x1C\x85V[\x90P`\0\x80Q` a2\x93\x839\x81Q\x91Ra\x1A\xF5\x8A`\0\x80Q` a2\x93\x839\x81Q\x91Ra2\x7FV[\x82\x08\x15\x9A\x99PPPPPPPPPPV[`\0`@Q\x82\x80\x85\x837\x90 \x93\x92PPPV[`\0\x82\x15\x80\x15a\x1B'WP\x81\x15[\x80a\x1B?WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x14[\x80a\x1BWWP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x14[\x15a\x1BdWP`\0a\x05/V[`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x90P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x7F\xFF\xFF\xFF\xFF\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x87\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\t\x08\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x7FZ\xC65\xD8\xAA:\x93\xE7\xB3\xEB\xBDUv\x98\x86\xBCe\x1D\x06\xB0\xCCS\xB0\xF6;\xCE<>'\xD2`K\x82\x08\x91\x90\x91\x14\x94\x93PPPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x7F\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%O`\x80\x82\x01R`\0\x80Q` a2\x93\x839\x81Q\x91R`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C~W`\0\x80\xFD[Q\x92\x91PPV[`\0\x80\x80\x80`\xFF\x81\x80\x88\x15\x80\x15a\x1C\x9AWP\x87\x15[\x15a\x1C\xAEW`\0\x96PPPPPPPa#GV[a\x1C\xFA\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x8D\x8Da#OV[\x90\x92P\x90P\x81\x15\x80\x15a\x1D\x0BWP\x80\x15[\x15a\x1D9W`\0\x80Q` a2\x93\x839\x81Q\x91R\x88`\0\x80Q` a2\x93\x839\x81Q\x91R\x03\x8A\x08\x98P`\0\x97P[`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01[\x80a\x1DlW`\x01\x84\x03\x93P`\x01\x8A\x85\x1C\x16`\x01\x8A\x86\x1C\x16`\x01\x1B\x01\x90Pa\x1DJV[P`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01\x95P`\x01\x86\x03a\x1D\xCEW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x96P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x93P[`\x02\x86\x03a\x1D\xDDW\x8A\x96P\x89\x93P[`\x03\x86\x03a\x1D\xECW\x81\x96P\x80\x93P[`\x01\x83\x03\x92P`\x01\x95P`\x01\x94P[\x82`\0\x19\x11\x15a\"\xD0W`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x02\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8A\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x84\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x8D\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08\t`\x03\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x85\t\x98P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x84\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x08\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\x82\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x87\t\x08\x97P`\x01\x8D\x88\x1C\x16`\x01\x8D\x89\x1C\x16`\x01\x1B\x01\x90P\x80a\x1FxW\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x97PPPPPa\"\xC5V[`\x01\x81\x03a\x1F\xC7W\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x93P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x92P[`\x02\x81\x03a\x1F\xD6W\x8E\x93P\x8D\x92P[`\x03\x81\x03a\x1F\xE5W\x85\x93P\x84\x92P[\x89a\x1F\xFEWP\x91\x98P`\x01\x97P\x87\x96P\x94Pa\"\xC5\x90PV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x86\t\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x88\t\x08\x93P\x80a!\xB7W\x83a!\xB7W`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x86\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8D\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x86\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x8F\x08\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81`\x03\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x86\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x85\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x08\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8D`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x85\x08\x83\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8A\x87\t\x85\x08\x98PPPPPPa\"\xC5V[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x83\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8D\t\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8C\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8E\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87\x88\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83\x8D\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x86\x08\t\x08\x9APPPP\x80\x9APPPPP[`\x01\x83\x03\x92Pa\x1D\xFBV[`@Q\x86``\x82\x01R` \x81R` \x80\x82\x01R` `@\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa#*W`\0\x80\xFD[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81Q\x89\t\x97PPPPPPPP[\x94\x93PPPPV[`\0\x80\x80\x80\x86a#fW\x85\x85\x93P\x93PPPa#\xD4V[\x84a#xW\x87\x87\x93P\x93PPPa#\xD4V[\x85\x88\x14\x80\x15a#\x86WP\x84\x87\x14[\x15a#\xA7Wa#\x98\x88\x88`\x01\x80a#\xDDV[\x92\x9AP\x90\x98P\x92P\x90Pa#\xC1V[a#\xB6\x88\x88`\x01\x80\x8A\x8Aa%8V[\x92\x9AP\x90\x98P\x92P\x90P[a#\xCD\x88\x88\x84\x84a&\xBCV[\x93P\x93PPP[\x94P\x94\x92PPPV[`\0\x80`\0\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x02\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x83\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x8B\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8C\x08\t`\x03\t\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x89\t\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x83\x08\x87\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x84\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x88\x85\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x89\x08\x92P\x94P\x94P\x94P\x94\x90PV[`\0\x80`\0\x80\x88`\0\x03a%WWP\x84\x92P\x83\x91P`\x01\x90P\x80a&\xAFV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x98\x89\x03\x98\x89\x81\x89\x88\t\x08\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x89\t\x08\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x87\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x89\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x88\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8B\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84\x8B\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\t\x08\x92P[\x96P\x96P\x96P\x96\x92PPPV[`\0\x80`\0a&\xCA\x84a')V[\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x87\t\x91P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x87\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x93PPP\x94P\x94\x92PPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C~W`\0\x80\xFD[P\x80Ta'\x91\x90a.\xAAV[`\0\x82U\x80`\x1F\x10a'\xA1WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05j\x91\x90[\x80\x82\x11\x15a\t\xDBW`\0\x81U`\x01\x01a'\xBBV[`\0\x80`@\x83\x85\x03\x12\x15a'\xE2W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a(\x08W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a(\x1FW`\0\x80\xFD[a\x05\xA0\x82a'\xF1V[`\0\x80\x83`\x1F\x84\x01\x12a(:W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a(QW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a(iW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a(\x85W`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a(\xA2W`\0\x80\xFD[a(\xAE\x86\x82\x87\x01a((V[\x94\x97\x90\x96P\x93\x94PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\xC0\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a(\xF3Wa(\xF3a(\xBBV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a)!Wa)!a(\xBBV[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a)BWa)Ba(\xBBV[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a)aW`\0\x80\xFD[\x815a)ta)o\x82a))V[a(\xF9V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a)\x89W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a)\xB8W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a)\xCEW`\0\x80\xFD[a#G\x84\x82\x85\x01a)PV[`\0\x80\x83`\x1F\x84\x01\x12a)\xECW`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a*\x03W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a(iW`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15a*1W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15a*GW`\0\x80\xFD[a*S\x85\x82\x86\x01a)\xDAV[\x90\x96\x90\x95P\x93PPPPV[`\0a\x01`\x82\x84\x03\x12\x15a*rW`\0\x80\xFD[P\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a*\x8DW`\0\x80\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15a*\xA3W`\0\x80\xFD[a*\xAF\x86\x82\x87\x01a*_V[\x96` \x86\x015\x96P`@\x90\x95\x015\x94\x93PPPPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a*\xDAW`\0\x80\xFD[a*\xE3\x84a'\xF1V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a(\xA2W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a+\x10W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a+&W`\0\x80\xFD[a#G\x84\x82\x85\x01a*_V[`\0\x80`\0`@\x84\x86\x03\x12\x15a+GW`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a+dW`\0\x80\xFD[a(\xAE\x86\x82\x87\x01a)\xDAV[`\0` \x82\x84\x03\x12\x15a+\x82W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a+\xA4W\x81\x81\x01Q\x83\x82\x01R` \x01a+\x8CV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra+\xC5\x81` \x86\x01` \x86\x01a+\x89V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\xFF`\xF8\x1B\x88\x16\x81R`\0` `\xE0` \x84\x01Ra+\xFA`\xE0\x84\x01\x8Aa+\xADV[\x83\x81\x03`@\x85\x01Ra,\x0C\x81\x8Aa+\xADV[``\x85\x01\x89\x90R`\x01`\x01`\xA0\x1B\x03\x88\x16`\x80\x86\x01R`\xA0\x85\x01\x87\x90R\x84\x81\x03`\xC0\x86\x01R\x85Q\x80\x82R` \x80\x88\x01\x93P\x90\x91\x01\x90`\0[\x81\x81\x10\x15a,`W\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a,DV[P\x90\x9C\x9BPPPPPPPPPPPPV[` \x81R`\0a\x05\xA0` \x83\x01\x84a+\xADV[`\0` \x82\x84\x03\x12\x15a,\x97W`\0\x80\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x05\xA0W`\0\x80\xFD[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a,\xC5W`\0\x80\xFD[a,\xCE\x85a'\xF1V[\x93P` \x85\x015\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a,\xF0W`\0\x80\xFD[a,\xFC\x87\x82\x88\x01a((V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80` \x83\x85\x03\x12\x15a-\x1BW`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15a-1W`\0\x80\xFD[a*S\x85\x82\x86\x01a((V[`\0\x82Qa-O\x81\x84` \x87\x01a+\x89V[\x91\x90\x91\x01\x92\x91PPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x825`^\x19\x836\x03\x01\x81\x12a-OW`\0\x80\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a-\x9CW`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15a-\xB6W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a(iW`\0\x80\xFD[`\0\x80\x85\x85\x11\x15a-\xDBW`\0\x80\xFD[\x83\x86\x11\x15a-\xE8W`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[`\x01`\x01`\xE0\x1B\x03\x19\x815\x81\x81\x16\x91`\x04\x85\x10\x15a.\x1DW\x80\x81\x86`\x04\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[`\0`\x01`\x01`@\x1B\x03\x80\x84\x11\x15a.?Wa.?a(\xBBV[\x83`\x05\x1B` a.Q` \x83\x01a(\xF9V[\x86\x81R\x91\x85\x01\x91` \x81\x01\x906\x84\x11\x15a.jW`\0\x80\xFD[\x86[\x84\x81\x10\x15a.\x9EW\x805\x86\x81\x11\x15a.\x84W`\0\x80\x81\xFD[a.\x906\x82\x8B\x01a)PV[\x84RP\x91\x83\x01\x91\x83\x01a.lV[P\x97\x96PPPPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a.\xBEW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a*rWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a/\x06Wa/\x06a.\xDEV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a/\x1FW`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a/6W`\0\x80\xFD[\x90\x83\x01\x90`@\x82\x86\x03\x12\x15a/JW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10\x83\x82\x11\x17\x15a/eWa/ea(\xBBV[`@R\x825\x81R` \x83\x015\x82\x81\x11\x15a/~W`\0\x80\xFD[a/\x8A\x87\x82\x86\x01a)PV[` \x83\x01RP\x95\x94PPPPPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a*rW`\0\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a/\xD0W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82`\x1F\x83\x01\x12a/\xF2W`\0\x80\xFD[\x81Qa0\0a)o\x82a))V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a0\x15W`\0\x80\xFD[a#G\x82` \x83\x01` \x87\x01a+\x89V[`\0` \x82\x84\x03\x12\x15a08W`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a0OW`\0\x80\xFD[\x90\x83\x01\x90`\xC0\x82\x86\x03\x12\x15a0cW`\0\x80\xFD[a0ka(\xD1V[\x82Q\x82\x81\x11\x15a0zW`\0\x80\xFD[a0\x86\x87\x82\x86\x01a/\xE1V[\x82RP` \x83\x01Q\x82\x81\x11\x15a0\x9BW`\0\x80\xFD[a0\xA7\x87\x82\x86\x01a/\xE1V[` \x83\x01RP`@\x83\x01Q`@\x82\x01R``\x83\x01Q``\x82\x01R`\x80\x83\x01Q`\x80\x82\x01R`\xA0\x83\x01Q`\xA0\x82\x01R\x80\x93PPPP\x92\x91PPV[`\x1F\x82\x11\x15a\x07\nW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a1\nWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a1)W\x82\x81U`\x01\x01a1\x16V[PPPPPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a1JWa1Ja(\xBBV[a1^\x81a1X\x84Ta.\xAAV[\x84a0\xE1V[` \x80`\x1F\x83\x11`\x01\x81\x14a1\x93W`\0\x84\x15a1{WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua1)V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a1\xC2W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a1\xA3V[P\x85\x82\x10\x15a1\xE0W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\x80\x82\x01\x80\x82\x11\x15a\x05/Wa\x05/a.\xDEV[l\x111\xB40\xB662\xB73\xB2\x91\x1D\x11`\x99\x1B\x81R\x81Q`\0\x90a2,\x81`\r\x85\x01` \x87\x01a+\x89V[`\x11`\xF9\x1B`\r\x93\x90\x91\x01\x92\x83\x01RP`\x0E\x01\x91\x90PV[`\0` \x82\x84\x03\x12\x15a2VW`\0\x80\xFD[PQ\x91\x90PV[`\0\x83Qa2o\x81\x84` \x88\x01a+\x89V[\x91\x90\x91\x01\x91\x82RP` \x01\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x05/Wa\x05/a.\xDEV\xFE\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%Q\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\0\xA2dipfsX\"\x12 v\xB8R\xC4N\x04\xB7(<\xDC\\\xE0:a\xAFh%I\x82*%\xC9\xCD\x17 \xCFHp\xE5B\xBD\xDDdsolcC\0\x08\x17\x003\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\0"; - /// The bytecode of the contract. - pub static MOCKCOINBASESMARTWALLET_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x01jW`\x005`\xE0\x1C\x80co-\xE7\x0E\x11a\0\xD1W\x80c\xA2\xE1\xA8\xD8\x11a\0\x8AW\x80c\xBFk\xA1\xFC\x11a\0dW\x80c\xBFk\xA1\xFC\x14a\x04\\W\x80c\xCE\x15\x06\xBE\x14a\x04oW\x80c\xD9H\xFD.\x14a\x04\x8FW\x80c\xF6\x98\xDA%\x14a\x04\xB1Wa\x01qV[\x80c\xA2\xE1\xA8\xD8\x14a\x04\x02W\x80c\xB0\xD6\x91\xFE\x14a\x04\"W\x80c\xB6\x1D'\xF6\x14a\x04IWa\x01qV[\x80co-\xE7\x0E\x14a\x03DW\x80cr\xDE;Z\x14a\x03WW\x80c\x84\xB0\x19n\x14a\x03wW\x80c\x88\xCEL|\x14a\x03\x9FW\x80c\x8E\xA6\x90)\x14a\x03\xB5W\x80c\x9F\x9B\xCB4\x14a\x03\xE2Wa\x01qV[\x80c:\x87\x1C\xDD\x11a\x01#W\x80c:\x87\x1C\xDD\x14a\x02\x80W\x80cO\x1E\xF2\x86\x14a\x02\xA1W\x80cOn\x7F\"\x14a\x02\xB4W\x80cR\xD1\x90-\x14a\x02\xD4W\x80cW\x7F<\xBF\x14a\x02\xE9W\x80c\\`\xDA\x1B\x14a\x02\xFCWa\x01qV[\x80c\x06j\x1E\xB7\x14a\x01\x9FW\x80c\x0F\x0F?$\x14a\x01\xD4W\x80c\x16&\xBA~\x14a\x01\xF4W\x80c\x1C\xA59?\x14a\x02-W\x80c)V^;\x14a\x02MW\x80c4\xFC\xD5\xBE\x14a\x02mWa\x01qV[6a\x01qW\0[`\x005`\xE0\x1Cc\xBC\x19|\x81\x81\x14c\xF2:na\x82\x14\x17c\x15\x0Bz\x02\x82\x14\x17\x15a\x01\x9DW\x80` R` `<\xF3[\0[4\x80\x15a\x01\xABW`\0\x80\xFD[Pa\x01\xBFa\x01\xBA6`\x04a'\xCFV[a\x04\xC6V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xE0W`\0\x80\xFD[Pa\x01\x9Da\x01\xEF6`\x04a(\rV[a\x055V[4\x80\x15a\x02\0W`\0\x80\xFD[Pa\x02\x14a\x02\x0F6`\x04a(pV[a\x05mV[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x01\xCBV[4\x80\x15a\x029W`\0\x80\xFD[Pa\x01\xBFa\x02H6`\x04a)\xA6V[a\x05\xA7V[4\x80\x15a\x02YW`\0\x80\xFD[Pa\x01\x9Da\x02h6`\x04a'\xCFV[a\x05\xE2V[a\x01\x9Da\x02{6`\x04a*\x1EV[a\x06\x0BV[a\x02\x93a\x02\x8E6`\x04a*xV[a\x07\x0FV[`@Q\x90\x81R` \x01a\x01\xCBV[a\x01\x9Da\x02\xAF6`\x04a*\xC5V[a\x08JV[4\x80\x15a\x02\xC0W`\0\x80\xFD[Pa\x02\x93a\x02\xCF6`\x04a*\xFEV[a\t.V[4\x80\x15a\x02\xE0W`\0\x80\xFD[Pa\x02\x93a\t\x7FV[a\x01\x9Da\x02\xF76`\x04a+2V[a\t\xDFV[4\x80\x15a\x03\x08W`\0\x80\xFD[P\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xCBV[a\x01\x9Da\x03R6`\x04a*\x1EV[a\n\x17V[4\x80\x15a\x03cW`\0\x80\xFD[Pa\x01\x9Da\x03r6`\x04a+pV[a\nWV[4\x80\x15a\x03\x83W`\0\x80\xFD[Pa\x03\x8Ca\x0BDV[`@Qa\x01\xCB\x97\x96\x95\x94\x93\x92\x91\x90a+\xD9V[4\x80\x15a\x03\xABW`\0\x80\xFD[Pa\x02\x93a!\x05\x81V[4\x80\x15a\x03\xC1W`\0\x80\xFD[Pa\x03\xD5a\x03\xD06`\x04a+pV[a\x0BkV[`@Qa\x01\xCB\x91\x90a,rV[4\x80\x15a\x03\xEEW`\0\x80\xFD[Pa\x01\xBFa\x03\xFD6`\x04a,\x85V[a\x0C,V[4\x80\x15a\x04\x0EW`\0\x80\xFD[Pa\x01\xBFa\x04\x1D6`\x04a(\rV[a\x0C\xA8V[4\x80\x15a\x04.W`\0\x80\xFD[Ps_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89a\x03,V[a\x01\x9Da\x04W6`\x04a,\xAFV[a\x0C\xEEV[a\x01\x9Da\x04j6`\x04a-\x08V[a\rRV[4\x80\x15a\x04{W`\0\x80\xFD[Pa\x02\x93a\x04\x8A6`\x04a+pV[a\x0E\x13V[4\x80\x15a\x04\x9BW`\0\x80\xFD[P`\0\x80Q` a2\xB3\x839\x81Q\x91RTa\x02\x93V[4\x80\x15a\x04\xBDW`\0\x80\xFD[Pa\x02\x93a\x0E\x1EV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\x19\x91a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P[\x92\x91PPV[a\x05=a\x0E\xA4V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x05j\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x0E\xD6V[PV[`\0a\x05\x82a\x05{\x85a\x0E\x13V[\x84\x84a\x0F\x01V[\x15a\x05\x95WPc\x0B\x13]?`\xE1\x1Ba\x05\xA0V[P`\x01`\x01`\xE0\x1B\x03\x19[\x93\x92PPPV[`\0`\0\x80Q` a2\xB3\x839\x81Q\x91R`\x02\x01\x82`@Qa\x05\xC9\x91\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x05\xEAa\x0E\xA4V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x06\x07\x90``\x01a\x05VV[PPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x06.Wa\x06.a\x0E\xA4V[`\0[\x81\x81\x10\x15a\x07\nWa\x07\x02\x83\x83\x83\x81\x81\x10a\x06NWa\x06Na-YV[\x90P` \x02\x81\x01\x90a\x06`\x91\x90a-oV[a\x06n\x90` \x81\x01\x90a(\rV[\x84\x84\x84\x81\x81\x10a\x06\x80Wa\x06\x80a-YV[\x90P` \x02\x81\x01\x90a\x06\x92\x91\x90a-oV[` \x015\x85\x85\x85\x81\x81\x10a\x06\xA8Wa\x06\xA8a-YV[\x90P` \x02\x81\x01\x90a\x06\xBA\x91\x90a-oV[a\x06\xC8\x90`@\x81\x01\x90a-\x85V[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[`\x01\x01a\x061V[PPPV[`\x003s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\x07DW`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81` \x85\x015`@\x1C`\x04a\x07\\``\x88\x01\x88a-\x85V[\x90P\x10\x15\x80\x15a\x07\xA0WPa\x07t``\x87\x01\x87a-\x85V[a\x07\x83\x91`\x04\x91`\0\x91a-\xCBV[a\x07\x8C\x91a-\xF5V[`\x01`\x01`\xE0\x1B\x03\x19\x16c\xBFk\xA1\xFC`\xE0\x1B\x14[\x15a\x07\xDFWa\x07\xAE\x86a\t.V[\x94Pa!\x05\x81\x14a\x07\xDAW`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[a\x08\x04V[a!\x05\x81\x03a\x08\x04W`@Qc.\xF3x\x13`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x07\xD1V[a\x08\x1B\x85a\x08\x16a\x01@\x89\x01\x89a-\x85V[a\x0F\x01V[\x15a\x08*W`\0\x92PPa\x080V[`\x01\x92PP[\x80\x15a\x08BW`\08`\08\x843Z\xF1P[P\x93\x92PPPV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x03a\x08\x80Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[a\x08\x89\x84a\x10\x86V[\x83``\x1B``\x1C\x93PcR\xD1\x90-`\x01R\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80` `\x01`\x04`\x1D\x89Z\xFAQ\x14a\x08\xDBWcU)\x9BI`\x01R`\x04`\x1D\xFD[\x84\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;`\08\xA2\x84\x90U\x81\x15a\t(W`@Q\x82\x84\x827`\08\x84\x83\x88Z\xF4a\t&W=`\0\x82>=\x81\xFD[P[PPPPV[`\0a\t9\x82a\x10\x8EV[`@\x80Q` \x81\x01\x92\x90\x92Rs_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x90\x82\x01R``\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[`\0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x81\x14a\t\xB7Wc\x9F\x03\xA0&`\0R`\x04`\x1C\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x91P[P\x90V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\n\x02Wa\n\x02a\x0E\xA4V[`@\x83\x06`@Q\x01`@Ra\x07\n\x82\x82a\x06\x0BV[`\0\x80Q` a2\xB3\x839\x81Q\x91RT\x15a\nEW`@Qc\x02\xEDT=`\xE5\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06\x07a\nR\x82\x84a.%V[a\x10\xA7V[a\n_a\x0E\xA4V[`\0a\nj\x82a\x0BkV[\x90P\x80Q`\0\x03a\n\x91W`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01a\x07\xD1V[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\n\xC1\x90\x83\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\n\xED`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x0B\x08\x91a'\x85V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x0B8\x91\x90a,rV[`@Q\x80\x91\x03\x90\xA2PPV[`\x0F`\xF8\x1B``\x80`\0\x80\x80\x83a\x0BYa\x11\xF9V[\x97\x98\x90\x97\x96PF\x95P0\x94P\x91\x92P\x90V[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x0B\xA7\x90a.\xAAV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x0B\xD3\x90a.\xAAV[\x80\x15a\x0C W\x80`\x1F\x10a\x0B\xF5Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x0C V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x0C\x03W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c)V^;`\xE0\x1B\x14\x80a\x0C]WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x03\xC3\xCF\xC9`\xE2\x1B\x14[\x80a\x0CxWP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c9o\x1D\xAD`\xE1\x1B\x14[\x80a\x0C\x93WP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c'\x8FyC`\xE1\x1B\x14[\x15a\x0C\xA0WP`\x01\x91\x90PV[P`\0\x91\x90PV[`\0`\0\x80Q` a2\xB3\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x05\xC9\x91a-=V[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x11Wa\r\x11a\x0E\xA4V[a\t(\x84\x84\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[3s_\xF17\xD4\xB0\xFD\xCDI\xDC\xA3\x0C|\xF5~W\x8A\x02m'\x89\x14a\r\x85W`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\r\x94`\x04\x82\x84\x86a-\xCBV[a\r\x9D\x91a-\xF5V[\x90Pa\r\xA8\x81a\x0C,V[a\r\xD1W`@Qc\x1D\x83p\xA3`\xE1\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`\x04\x82\x01R`$\x01a\x07\xD1V[a\x07\n0`\0\x85\x85\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x10\x16\x92PPPV[`\0a\x05/\x82a\x12@V[`\0\x80`\0a\x0E+a\x11\xF9V[\x81Q` \x80\x84\x01\x91\x90\x91 \x82Q\x82\x84\x01 `@\x80Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x94\x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R\x91\x93P\x91P`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x92PPP\x90V[a\x0E\xAD3a\x0C\xA8V[\x80a\x0E\xB7WP30\x14[\x15a\x0E\xBEWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05j\x81`\0\x80Q` a2\xB3\x839\x81Q\x91R[\x80T\x90`\0a\x0E\xF8\x83a.\xF4V[\x91\x90PUa\x12vV[`\0\x80a\x0F\x10\x83\x85\x01\x85a/\rV[\x90P`\0a\x0F!\x82`\0\x01Qa\x0BkV[\x90P\x80Q` \x03a\x0F\x80W`\x01`\x01`\xA0\x1B\x03a\x0F=\x82a/\x99V[\x11\x15a\x0F^W\x80`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\0` \x82\x01Q\x90Pa\x0Fv\x81\x88\x85` \x01Qa\x13EV[\x93PPPPa\x05\xA0V[\x80Q`@\x03a\x0F\xFBW`\0\x80\x82\x80` \x01\x90Q\x81\x01\x90a\x0F\xA0\x91\x90a/\xBDV[\x91P\x91P`\0\x84` \x01Q\x80` \x01\x90Q\x81\x01\x90a\x0F\xBE\x91\x90a0&V[\x90Pa\x0F\xEF\x89`@Q` \x01a\x0F\xD6\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`\0\x83\x86\x86a\x14JV[\x95PPPPPPa\x05\xA0V[\x80`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\0\x80\x84`\x01`\x01`\xA0\x1B\x03\x16\x84\x84`@Qa\x102\x91\x90a-=V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x10oW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x10tV[``\x91P[P\x91P\x91P\x81a\t&W\x80Q` \x82\x01\xFD[a\x05ja\x0E\xA4V[`\0a\x10\x99\x82a\x17\xBAV[\x80Q\x90` \x01 \x90P\x91\x90PV[`\0[\x81Q\x81\x10\x15a\x06\x07W\x81\x81\x81Q\x81\x10a\x10\xC5Wa\x10\xC5a-YV[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x10\xF9WP\x81\x81\x81Q\x81\x10a\x10\xEBWa\x10\xEBa-YV[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x112W\x81\x81\x81Q\x81\x10a\x11\x10Wa\x11\x10a-YV[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[\x81\x81\x81Q\x81\x10a\x11DWa\x11Da-YV[` \x02` \x01\x01QQ` \x14\x80\x15a\x11\x86WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x11sWa\x11sa-YV[` \x02` \x01\x01Qa\x11\x84\x90a/\x99V[\x11[\x15a\x11\xBFW\x81\x81\x81Q\x81\x10a\x11\x9DWa\x11\x9Da-YV[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[a\x11\xF1\x82\x82\x81Q\x81\x10a\x11\xD4Wa\x11\xD4a-YV[` \x02` \x01\x01Qa\x0E\xEA`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\x01\x01a\x10\xAAV[`@\x80Q\x80\x82\x01\x82R`\x15\x81Rt\x10\xDB\xDA[\x98\x98\\\xD9H\x14\xDBX\\\x9D\x08\x15\xD8[\x1B\x19]`Z\x1B` \x80\x83\x01\x91\x90\x91R\x82Q\x80\x84\x01\x90\x93R`\x01\x83R`1`\xF8\x1B\x90\x83\x01R\x91V[`\0a\x12Ja\x0E\x1EV[a\x12S\x83a\x18\x8DV[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x92\x90\x92R`B\x82\x01R`b\x01a\tbV[a\x12\x7F\x82a\x05\xA7V[\x15a\x12\x9FW\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x07\xD1\x91\x90a,rV[`\x01`\0\x80Q` a2\xB3\x839\x81Q\x91R`\x02\x01\x83`@Qa\x12\xC1\x91\x90a-=V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x12\xF7`\0\x80Q` a2\xB3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x13\x14\x90\x82a11V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x0B8\x91\x90a,rV[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91`\0\x83\x15a\x05\xA0W`@Q\x83`\0R` \x83\x01Q`@R`@\x83Q\x03a\x13\xB5W`@\x83\x01Q`\x1B\x81`\xFF\x1C\x01` R\x80`\x01\x1B`\x01\x1C``RP` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\xB3WP`\0``R`@RP`\x01a\x05\xA0V[P[`A\x83Q\x03a\x13\xFBW``\x83\x01Q`\0\x1A` R`@\x83\x01Q``R` `\x01`\x80`\0`\x01Z\xFA\x80Q\x86\x18=\x15\x17a\x13\xF9WP`\0``R`@RP`\x01a\x05\xA0V[P[`\0``R\x80`@Rc\x16&\xBA~`\xE0\x1B\x80\x82R\x84`\x04\x83\x01R`$\x82\x01`@\x81R\x84Q` \x01\x80`D\x85\x01\x82\x88`\x04Z\xFAPP` \x81`D=\x01\x85\x8AZ\xFA\x90Q\x90\x91\x14\x16\x91PP\x93\x92PPPV[`\0\x7F\x7F\xFF\xFF\xFF\x80\0\0\0\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xDEs}V\xD3\x8B\xCFBy\xDC\xE5a~1\x92\xA8\x84`\xA0\x01Q\x11\x15a\x14\x80WP`\0a\x17\xB1V[``\x84\x01Q`\0\x90a\x14\xA3\x90a\x14\x97\x81`\x15a1\xF0V[` \x88\x01Q\x91\x90a\x18\xC8V[\x90P\x7F\xFF\x1A*\x91v\xD6P\xE4\xA9\x9D\xED\xB5\x8F\x17\x93\095\x13\x05y\xFE\x17\xB5\xA3\xF6\x98\xAC[\0\xE64\x81\x80Q\x90` \x01 \x14a\x14\xDDW`\0\x91PPa\x17\xB1V[`\0a\x14\xEB\x88`\x01\x80a\x19.V[`@Q` \x01a\x14\xFB\x91\x90a2\x03V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0a\x153\x87`@\x01Q\x83Q\x89`@\x01Qa\x15'\x91\x90a1\xF0V[` \x8A\x01Q\x91\x90a\x18\xC8V[\x90P\x81\x80Q\x90` \x01 \x81\x80Q\x90` \x01 \x14a\x15VW`\0\x93PPPPa\x17\xB1V[\x86Q\x80Q`\x01`\xF8\x1B\x91\x82\x91` \x90\x81\x10a\x15sWa\x15sa-YV[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14a\x15\x94W`\0\x93PPPPa\x17\xB1V[\x87\x80\x15a\x15\xCCWP\x86Q\x80Q`\x01`\xFA\x1B\x91\x82\x91` \x90\x81\x10a\x15\xB9Wa\x15\xB9a-YV[\x01` \x01Q\x16`\x01`\x01`\xF8\x1B\x03\x19\x16\x14\x15[\x15a\x15\xDDW`\0\x93PPPPa\x17\xB1V[`\0`\x02\x88` \x01Q`@Qa\x15\xF3\x91\x90a-=V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16\x10W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x163\x91\x90a2DV[\x90P`\0`\x02\x89`\0\x01Q\x83`@Q` \x01a\x16P\x92\x91\x90a2]V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x16j\x91a-=V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x16\x87W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16\xAA\x91\x90a2DV[`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`@\x80Q` \x81\x01\x87\x90R\x90\x81\x01\x93\x90\x93R``\x83\x01R\x91\x81\x01\x8B\x90R\x90\x81\x01\x89\x90R\x90\x91P`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0\x80a\x01\0`\x01`\x01`\xA0\x1B\x03\x16\x83`@Qa\x17\x10\x91\x90a-=V[`\0`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80`\0\x81\x14a\x17KW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x17PV[``\x91P[P\x80Q\x91\x93P\x91P\x15\x15\x82\x80\x15a\x17dWP\x80[\x15a\x17\x90W\x81\x80` \x01\x90Q\x81\x01\x90a\x17}\x91\x90a2DV[`\x01\x14\x99PPPPPPPPPPa\x17\xB1V[a\x17\xA5\x85\x8E`\x80\x01Q\x8F`\xA0\x01Q\x8F\x8Fa\x1A#V[\x99PPPPPPPPPP[\x95\x94PPPPPV[``\x815` \x83\x015`\0a\x17\xDAa\x17\xD5`@\x87\x01\x87a-\x85V[a\x1B\x06V[\x90P`\0a\x17\xEEa\x17\xD5``\x88\x01\x88a-\x85V[\x90P`\x80\x86\x015`\xA0\x87\x015`\xC0\x88\x015`\xE0\x89\x015a\x01\0\x8A\x015`\0a\x18\x1Da\x17\xD5a\x01 \x8E\x01\x8Ea-\x85V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x9C\x90\x9C\x16` \x8D\x01R\x8B\x81\x01\x9A\x90\x9AR``\x8B\x01\x98\x90\x98RP`\x80\x89\x01\x95\x90\x95R`\xA0\x88\x01\x93\x90\x93R`\xC0\x87\x01\x91\x90\x91R`\xE0\x86\x01Ra\x01\0\x85\x01Ra\x01 \x84\x01Ra\x01@\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81Ra\x01`\x90\x92\x01\x90R\x92\x91PPV[`@\x80Q\x7F\x9BI=\"!\x05\xFE\xE7\xDF\x16:\xB5\xD5\x7F\x0B\xF1\xFF\xD2\xDA\x04\xDD_\xAF\xBE\x10\xB5LA\xC1\xAD\xC6W` \x82\x01R\x90\x81\x01\x82\x90R`\0\x90``\x01a\tbV[``\x83Q\x82\x81\x11a\x18\xD7W\x80\x92P[\x83\x81\x11a\x18\xE2W\x80\x93P[P\x81\x83\x10\x15a\x05\xA0WP`@Q\x82\x82\x03\x80\x82R\x93\x83\x01\x93`\x1F\x19`\x1F\x82\x01\x81\x16[\x86\x81\x01Q\x84\x82\x01R\x81\x01\x80a\x19\x03WP`\0\x83\x83\x01` \x01R`?\x90\x91\x01\x16\x81\x01`@R\x93\x92PPPV[``\x83Q\x80\x15a\x08BW`\x03`\x02\x82\x01\x04`\x02\x1B`@Q\x92P\x7FABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`\x1FRa\x06p\x85\x15\x02\x7Fghijklmnopqrstuvwxyz0123456789-_\x18`?R` \x83\x01\x81\x81\x01\x83\x88` \x01\x01\x80Q`\0\x82R[`\x03\x8A\x01\x99P\x89Q`?\x81`\x12\x1C\x16Q`\0S`?\x81`\x0C\x1C\x16Q`\x01S`?\x81`\x06\x1C\x16Q`\x02S`?\x81\x16Q`\x03SP`\0Q\x84R`\x04\x84\x01\x93P\x82\x84\x10a\x19\xAAW\x90R` \x01`@Ra==`\xF0\x1B`\x03\x84\x06`\x02\x04\x80\x83\x03\x91\x90\x91R`\0\x86\x15\x15\x90\x91\x02\x91\x82\x90\x03R\x90\x03\x82RP\x93\x92PPPV[`\0\x84\x15\x80a\x1A@WP`\0\x80Q` a2\x93\x839\x81Q\x91R\x85\x10\x15[\x80a\x1AIWP\x83\x15[\x80a\x1AbWP`\0\x80Q` a2\x93\x839\x81Q\x91R\x84\x10\x15[\x15a\x1AoWP`\0a\x17\xB1V[a\x1Ay\x83\x83a\x1B\x19V[a\x1A\x85WP`\0a\x17\xB1V[`\0a\x1A\x90\x85a\x1C\x13V[\x90P`\0`\0\x80Q` a2\x93\x839\x81Q\x91R\x82\x89\t\x90P`\0`\0\x80Q` a2\x93\x839\x81Q\x91R\x83\x89\t\x90P`\0a\x1A\xCC\x87\x87\x85\x85a\x1C\x85V[\x90P`\0\x80Q` a2\x93\x839\x81Q\x91Ra\x1A\xF5\x8A`\0\x80Q` a2\x93\x839\x81Q\x91Ra2\x7FV[\x82\x08\x15\x9A\x99PPPPPPPPPPV[`\0`@Q\x82\x80\x85\x837\x90 \x93\x92PPPV[`\0\x82\x15\x80\x15a\x1B'WP\x81\x15[\x80a\x1B?WP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x14[\x80a\x1BWWP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x14[\x15a\x1BdWP`\0a\x05/V[`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x90P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x7F\xFF\xFF\xFF\xFF\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFC\x87\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\t\x08\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x7FZ\xC65\xD8\xAA:\x93\xE7\xB3\xEB\xBDUv\x98\x86\xBCe\x1D\x06\xB0\xCCS\xB0\xF6;\xCE<>'\xD2`K\x82\x08\x91\x90\x91\x14\x94\x93PPPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x7F\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%O`\x80\x82\x01R`\0\x80Q` a2\x93\x839\x81Q\x91R`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C~W`\0\x80\xFD[Q\x92\x91PPV[`\0\x80\x80\x80`\xFF\x81\x80\x88\x15\x80\x15a\x1C\x9AWP\x87\x15[\x15a\x1C\xAEW`\0\x96PPPPPPPa#GV[a\x1C\xFA\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x8D\x8Da#OV[\x90\x92P\x90P\x81\x15\x80\x15a\x1D\x0BWP\x80\x15[\x15a\x1D9W`\0\x80Q` a2\x93\x839\x81Q\x91R\x88`\0\x80Q` a2\x93\x839\x81Q\x91R\x03\x8A\x08\x98P`\0\x97P[`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01[\x80a\x1DlW`\x01\x84\x03\x93P`\x01\x8A\x85\x1C\x16`\x01\x8A\x86\x1C\x16`\x01\x1B\x01\x90Pa\x1DJV[P`\x01\x89\x84\x1C\x16`\x01\x89\x85\x1C\x16`\x01\x1B\x01\x95P`\x01\x86\x03a\x1D\xCEW\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x96P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x93P[`\x02\x86\x03a\x1D\xDDW\x8A\x96P\x89\x93P[`\x03\x86\x03a\x1D\xECW\x81\x96P\x80\x93P[`\x01\x83\x03\x92P`\x01\x95P`\x01\x94P[\x82`\0\x19\x11\x15a\"\xD0W`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x02\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8A\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x84\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x8D\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08\t`\x03\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x85\t\x98P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x84\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x84\t\x08\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\x82\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x87\t\x08\x97P`\x01\x8D\x88\x1C\x16`\x01\x8D\x89\x1C\x16`\x01\x1B\x01\x90P\x80a\x1FxW\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x97PPPPPa\"\xC5V[`\x01\x81\x03a\x1F\xC7W\x7Fk\x17\xD1\xF2\xE1,BG\xF8\xBC\xE6\xE5c\xA4@\xF2w\x03}\x81-\xEB3\xA0\xF4\xA19E\xD8\x98\xC2\x96\x93P\x7FO\xE3B\xE2\xFE\x1A\x7F\x9B\x8E\xE7\xEBJ|\x0F\x9E\x16+\xCE3Wk1^\xCE\xCB\xB6@h7\xBFQ\xF5\x92P[`\x02\x81\x03a\x1F\xD6W\x8E\x93P\x8D\x92P[`\x03\x81\x03a\x1F\xE5W\x85\x93P\x84\x92P[\x89a\x1F\xFEWP\x91\x98P`\x01\x97P\x87\x96P\x94Pa\"\xC5\x90PV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x86\t\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x88\t\x08\x93P\x80a!\xB7W\x83a!\xB7W`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x86\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8D\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x86\t\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8C`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8E\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8D\x8F\x08\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81`\x03\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x86\t\x99P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8B\x85\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x08\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8D`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x85\x08\x83\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x8A\x87\t\x85\x08\x98PPPPPPa\"\xC5V[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x83\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8D\t\x9BP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x8C\t\x9AP`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x8E\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87\x88\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x83\x8D\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x86\x08\t\x08\x9APPPP\x80\x9APPPPP[`\x01\x83\x03\x92Pa\x1D\xFBV[`@Q\x86``\x82\x01R` \x81R` \x80\x82\x01R` `@\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa#*W`\0\x80\xFD[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81Q\x89\t\x97PPPPPPPP[\x94\x93PPPPV[`\0\x80\x80\x80\x86a#fW\x85\x85\x93P\x93PPPa#\xD4V[\x84a#xW\x87\x87\x93P\x93PPPa#\xD4V[\x85\x88\x14\x80\x15a#\x86WP\x84\x87\x14[\x15a#\xA7Wa#\x98\x88\x88`\x01\x80a#\xDDV[\x92\x9AP\x90\x98P\x92P\x90Pa#\xC1V[a#\xB6\x88\x88`\x01\x80\x8A\x8Aa%8V[\x92\x9AP\x90\x98P\x92P\x90P[a#\xCD\x88\x88\x84\x84a&\xBCV[\x93P\x93PPP[\x94P\x94\x92PPPV[`\0\x80`\0\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x02\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x85\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x83\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x8B\x08`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8C\x08\t`\x03\t\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x82`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88\x89\t\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x83\x08\x87\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85\x84\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x88\x85\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x89\x08\x92P\x94P\x94P\x94P\x94\x90PV[`\0\x80`\0\x80\x88`\0\x03a%WWP\x84\x92P\x83\x91P`\x01\x90P\x80a&\xAFV[`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x98\x89\x03\x98\x89\x81\x89\x88\t\x08\x94P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x8A\x89\t\x08\x95P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x87\t\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x86\x85\t\x92P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x89\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x83\x88\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x84\x8B\t\x97P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x89`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x85`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x89\x8A\t\x08\x08\x93P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x80\x84\x8B\t`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x87`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x88`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x03\x8D\x08\t\x08\x92P[\x96P\x96P\x96P\x96\x92PPPV[`\0\x80`\0a&\xCA\x84a')V[\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x87\t\x91P`\0`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x87\t\x90P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x81\x82\t\x91P`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19\x82\x89\t\x93PPP\x94P\x94\x92PPPV[`\0`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R`\x02`\x01``\x1B\x03c\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\x80\x82\x01R`\x01``\x1Bc\xFF\xFF\xFF\xFF`\xC0\x1B\x03\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa\x1C~W`\0\x80\xFD[P\x80Ta'\x91\x90a.\xAAV[`\0\x82U\x80`\x1F\x10a'\xA1WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05j\x91\x90[\x80\x82\x11\x15a\t\xDBW`\0\x81U`\x01\x01a'\xBBV[`\0\x80`@\x83\x85\x03\x12\x15a'\xE2W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a(\x08W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a(\x1FW`\0\x80\xFD[a\x05\xA0\x82a'\xF1V[`\0\x80\x83`\x1F\x84\x01\x12a(:W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a(QW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a(iW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15a(\x85W`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a(\xA2W`\0\x80\xFD[a(\xAE\x86\x82\x87\x01a((V[\x94\x97\x90\x96P\x93\x94PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\xC0\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a(\xF3Wa(\xF3a(\xBBV[`@R\x90V[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a)!Wa)!a(\xBBV[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15a)BWa)Ba(\xBBV[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a)aW`\0\x80\xFD[\x815a)ta)o\x82a))V[a(\xF9V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a)\x89W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a)\xB8W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a)\xCEW`\0\x80\xFD[a#G\x84\x82\x85\x01a)PV[`\0\x80\x83`\x1F\x84\x01\x12a)\xECW`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a*\x03W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a(iW`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15a*1W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15a*GW`\0\x80\xFD[a*S\x85\x82\x86\x01a)\xDAV[\x90\x96\x90\x95P\x93PPPPV[`\0a\x01`\x82\x84\x03\x12\x15a*rW`\0\x80\xFD[P\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a*\x8DW`\0\x80\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15a*\xA3W`\0\x80\xFD[a*\xAF\x86\x82\x87\x01a*_V[\x96` \x86\x015\x96P`@\x90\x95\x015\x94\x93PPPPV[`\0\x80`\0`@\x84\x86\x03\x12\x15a*\xDAW`\0\x80\xFD[a*\xE3\x84a'\xF1V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a(\xA2W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a+\x10W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a+&W`\0\x80\xFD[a#G\x84\x82\x85\x01a*_V[`\0\x80`\0`@\x84\x86\x03\x12\x15a+GW`\0\x80\xFD[\x835\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a+dW`\0\x80\xFD[a(\xAE\x86\x82\x87\x01a)\xDAV[`\0` \x82\x84\x03\x12\x15a+\x82W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a+\xA4W\x81\x81\x01Q\x83\x82\x01R` \x01a+\x8CV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra+\xC5\x81` \x86\x01` \x86\x01a+\x89V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\xFF`\xF8\x1B\x88\x16\x81R`\0` `\xE0` \x84\x01Ra+\xFA`\xE0\x84\x01\x8Aa+\xADV[\x83\x81\x03`@\x85\x01Ra,\x0C\x81\x8Aa+\xADV[``\x85\x01\x89\x90R`\x01`\x01`\xA0\x1B\x03\x88\x16`\x80\x86\x01R`\xA0\x85\x01\x87\x90R\x84\x81\x03`\xC0\x86\x01R\x85Q\x80\x82R` \x80\x88\x01\x93P\x90\x91\x01\x90`\0[\x81\x81\x10\x15a,`W\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a,DV[P\x90\x9C\x9BPPPPPPPPPPPPV[` \x81R`\0a\x05\xA0` \x83\x01\x84a+\xADV[`\0` \x82\x84\x03\x12\x15a,\x97W`\0\x80\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x05\xA0W`\0\x80\xFD[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a,\xC5W`\0\x80\xFD[a,\xCE\x85a'\xF1V[\x93P` \x85\x015\x92P`@\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a,\xF0W`\0\x80\xFD[a,\xFC\x87\x82\x88\x01a((V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80` \x83\x85\x03\x12\x15a-\x1BW`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15a-1W`\0\x80\xFD[a*S\x85\x82\x86\x01a((V[`\0\x82Qa-O\x81\x84` \x87\x01a+\x89V[\x91\x90\x91\x01\x92\x91PPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x825`^\x19\x836\x03\x01\x81\x12a-OW`\0\x80\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a-\x9CW`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15a-\xB6W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a(iW`\0\x80\xFD[`\0\x80\x85\x85\x11\x15a-\xDBW`\0\x80\xFD[\x83\x86\x11\x15a-\xE8W`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[`\x01`\x01`\xE0\x1B\x03\x19\x815\x81\x81\x16\x91`\x04\x85\x10\x15a.\x1DW\x80\x81\x86`\x04\x03`\x03\x1B\x1B\x83\x16\x16\x92P[PP\x92\x91PPV[`\0`\x01`\x01`@\x1B\x03\x80\x84\x11\x15a.?Wa.?a(\xBBV[\x83`\x05\x1B` a.Q` \x83\x01a(\xF9V[\x86\x81R\x91\x85\x01\x91` \x81\x01\x906\x84\x11\x15a.jW`\0\x80\xFD[\x86[\x84\x81\x10\x15a.\x9EW\x805\x86\x81\x11\x15a.\x84W`\0\x80\x81\xFD[a.\x906\x82\x8B\x01a)PV[\x84RP\x91\x83\x01\x91\x83\x01a.lV[P\x97\x96PPPPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a.\xBEW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a*rWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a/\x06Wa/\x06a.\xDEV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a/\x1FW`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a/6W`\0\x80\xFD[\x90\x83\x01\x90`@\x82\x86\x03\x12\x15a/JW`\0\x80\xFD[`@Q`@\x81\x01\x81\x81\x10\x83\x82\x11\x17\x15a/eWa/ea(\xBBV[`@R\x825\x81R` \x83\x015\x82\x81\x11\x15a/~W`\0\x80\xFD[a/\x8A\x87\x82\x86\x01a)PV[` \x83\x01RP\x95\x94PPPPPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a*rW`\0\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a/\xD0W`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0\x82`\x1F\x83\x01\x12a/\xF2W`\0\x80\xFD[\x81Qa0\0a)o\x82a))V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a0\x15W`\0\x80\xFD[a#G\x82` \x83\x01` \x87\x01a+\x89V[`\0` \x82\x84\x03\x12\x15a08W`\0\x80\xFD[\x81Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a0OW`\0\x80\xFD[\x90\x83\x01\x90`\xC0\x82\x86\x03\x12\x15a0cW`\0\x80\xFD[a0ka(\xD1V[\x82Q\x82\x81\x11\x15a0zW`\0\x80\xFD[a0\x86\x87\x82\x86\x01a/\xE1V[\x82RP` \x83\x01Q\x82\x81\x11\x15a0\x9BW`\0\x80\xFD[a0\xA7\x87\x82\x86\x01a/\xE1V[` \x83\x01RP`@\x83\x01Q`@\x82\x01R``\x83\x01Q``\x82\x01R`\x80\x83\x01Q`\x80\x82\x01R`\xA0\x83\x01Q`\xA0\x82\x01R\x80\x93PPPP\x92\x91PPV[`\x1F\x82\x11\x15a\x07\nW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a1\nWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a1)W\x82\x81U`\x01\x01a1\x16V[PPPPPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a1JWa1Ja(\xBBV[a1^\x81a1X\x84Ta.\xAAV[\x84a0\xE1V[` \x80`\x1F\x83\x11`\x01\x81\x14a1\x93W`\0\x84\x15a1{WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua1)V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a1\xC2W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a1\xA3V[P\x85\x82\x10\x15a1\xE0W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\x80\x82\x01\x80\x82\x11\x15a\x05/Wa\x05/a.\xDEV[l\x111\xB40\xB662\xB73\xB2\x91\x1D\x11`\x99\x1B\x81R\x81Q`\0\x90a2,\x81`\r\x85\x01` \x87\x01a+\x89V[`\x11`\xF9\x1B`\r\x93\x90\x91\x01\x92\x83\x01RP`\x0E\x01\x91\x90PV[`\0` \x82\x84\x03\x12\x15a2VW`\0\x80\xFD[PQ\x91\x90PV[`\0\x83Qa2o\x81\x84` \x88\x01a+\x89V[\x91\x90\x91\x01\x91\x82RP` \x01\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x05/Wa\x05/a.\xDEV\xFE\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xBC\xE6\xFA\xAD\xA7\x17\x9E\x84\xF3\xB9\xCA\xC2\xFCc%Q\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\0\xA2dipfsX\"\x12 v\xB8R\xC4N\x04\xB7(<\xDC\\\xE0:a\xAFh%I\x82*%\xC9\xCD\x17 \xCFHp\xE5B\xBD\xDDdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKCOINBASESMARTWALLET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockCoinbaseSmartWallet(::ethers::contract::Contract); - impl ::core::clone::Clone for MockCoinbaseSmartWallet { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockCoinbaseSmartWallet { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockCoinbaseSmartWallet { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockCoinbaseSmartWallet { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockCoinbaseSmartWallet)) - .field(&self.address()) - .finish() - } - } - impl MockCoinbaseSmartWallet { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKCOINBASESMARTWALLET_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKCOINBASESMARTWALLET_ABI.clone(), - MOCKCOINBASESMARTWALLET_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `REPLAYABLE_NONCE_KEY` (0x88ce4c7c) function - pub fn replayable_nonce_key( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([136, 206, 76, 124], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerAddress` (0x0f0f3f24) function - pub fn add_owner_address( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([15, 15, 63, 36], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerPublicKey` (0x29565e3b) function - pub fn add_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([41, 86, 94, 59], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `canSkipChainIdValidation` (0x9f9bcb34) function - pub fn can_skip_chain_id_validation( - &self, - function_selector: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([159, 155, 203, 52], function_selector) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `domainSeparator` (0xf698da25) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([246, 152, 218, 37], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `eip712Domain` (0x84b0196e) function - pub fn eip_712_domain( - &self, - ) -> ::ethers::contract::builders::ContractCall< - M, - ( - [u8; 1], - ::std::string::String, - ::std::string::String, - ::ethers::core::types::U256, - ::ethers::core::types::Address, - [u8; 32], - ::std::vec::Vec<::ethers::core::types::U256>, - ), - > { - self.0 - .method_hash([132, 176, 25, 110], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `entryPoint` (0xb0d691fe) function - pub fn entry_point( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([176, 214, 145, 254], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `execute` (0xb61d27f6) function - pub fn execute( - &self, - target: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([182, 29, 39, 246], (target, value, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `executeBatch` (0x34fcd5be) function - pub fn execute_batch( - &self, - calls: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([52, 252, 213, 190], calls) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `executeBatch` (0x577f3cbf) function - pub fn execute_batch_with_filler( - &self, - filler: ::ethers::core::types::U256, - calls: ::std::vec::Vec, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([87, 127, 60, 191], (filler, calls)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `executeWithoutChainIdValidation` (0xbf6ba1fc) function - pub fn execute_without_chain_id_validation( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([191, 107, 161, 252], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getUserOpHashWithoutChainId` (0x4f6e7f22) function - pub fn get_user_op_hash_without_chain_id( - &self, - user_op: UserOperation, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 110, 127, 34], (user_op,)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `implementation` (0x5c60da1b) function - pub fn implementation( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([92, 96, 218, 27], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x6f2de70e) function - pub fn initialize( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([111, 45, 231, 14], owners) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerAddress` (0xa2e1a8d8) function - pub fn is_owner_address( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 225, 168, 216], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerBytes` (0x1ca5393f) function - pub fn is_owner_bytes( - &self, - account: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([28, 165, 57, 63], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerPublicKey` (0x066a1eb7) function - pub fn is_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 106, 30, 183], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isValidSignature` (0x1626ba7e) function - pub fn is_valid_signature( - &self, - hash: [u8; 32], - signature: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 38, 186, 126], (hash, signature)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nextOwnerIndex` (0xd948fd2e) function - pub fn next_owner_index( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([217, 72, 253, 46], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerAtIndex` (0x8ea69029) function - pub fn owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([142, 166, 144, 41], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `proxiableUUID` (0x52d1902d) function - pub fn proxiable_uuid(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 209, 144, 45], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `removeOwnerAtIndex` (0x72de3b5a) function - pub fn remove_owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([114, 222, 59, 90], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `replaySafeHash` (0xce1506be) function - pub fn replay_safe_hash( - &self, - hash: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([206, 21, 6, 190], hash) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function - pub fn upgrade_to_and_call( - &self, - new_implementation: ::ethers::core::types::Address, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 30, 242, 134], (new_implementation, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateUserOp` (0x3a871cdd) function - pub fn validate_user_op( - &self, - user_op: UserOperation, - user_op_hash: [u8; 32], - missing_account_funds: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [58, 135, 28, 221], - (user_op, user_op_hash, missing_account_funds), - ) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `AddOwner` event - pub fn add_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AddOwnerFilter> { - self.0.event() - } - ///Gets the contract's `RemoveOwner` event - pub fn remove_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RemoveOwnerFilter> - { - self.0.event() - } - ///Gets the contract's `Upgraded` event - pub fn upgraded_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - MockCoinbaseSmartWalletEvents, - > { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for MockCoinbaseSmartWallet - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AlreadyOwner` with signature `AlreadyOwner(bytes)` and selector `0x8d16255a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "AlreadyOwner", abi = "AlreadyOwner(bytes)")] - pub struct AlreadyOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `Initialized` with signature `Initialized()` and selector `0x5daa87a0` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Initialized", abi = "Initialized()")] - pub struct Initialized; - ///Custom Error type `InvalidEthereumAddressOwner` with signature `InvalidEthereumAddressOwner(bytes)` and selector `0xbff1ac65` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidEthereumAddressOwner", - abi = "InvalidEthereumAddressOwner(bytes)" - )] - pub struct InvalidEthereumAddressOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidNonceKey` with signature `InvalidNonceKey(uint256)` and selector `0x2ef37813` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "InvalidNonceKey", abi = "InvalidNonceKey(uint256)")] - pub struct InvalidNonceKey { - pub key: ::ethers::core::types::U256, - } - ///Custom Error type `InvalidOwnerBytesLength` with signature `InvalidOwnerBytesLength(bytes)` and selector `0x4eeab722` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidOwnerBytesLength", - abi = "InvalidOwnerBytesLength(bytes)" - )] - pub struct InvalidOwnerBytesLength { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `NoOwnerAtIndex` with signature `NoOwnerAtIndex(uint256)` and selector `0x68188e7a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NoOwnerAtIndex", abi = "NoOwnerAtIndex(uint256)")] - pub struct NoOwnerAtIndex { - pub index: ::ethers::core::types::U256, - } - ///Custom Error type `SelectorNotAllowed` with signature `SelectorNotAllowed(bytes4)` and selector `0x3b06e146` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "SelectorNotAllowed", abi = "SelectorNotAllowed(bytes4)")] - pub struct SelectorNotAllowed { - pub selector: [u8; 4], - } - ///Custom Error type `Unauthorized` with signature `Unauthorized()` and selector `0x82b42900` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Unauthorized", abi = "Unauthorized()")] - pub struct Unauthorized; - ///Custom Error type `UnauthorizedCallContext` with signature `UnauthorizedCallContext()` and selector `0x9f03a026` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UnauthorizedCallContext", abi = "UnauthorizedCallContext()")] - pub struct UnauthorizedCallContext; - ///Custom Error type `UpgradeFailed` with signature `UpgradeFailed()` and selector `0x55299b49` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UpgradeFailed", abi = "UpgradeFailed()")] - pub struct UpgradeFailed; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockCoinbaseSmartWalletErrors { - AlreadyOwner(AlreadyOwner), - Initialized(Initialized), - InvalidEthereumAddressOwner(InvalidEthereumAddressOwner), - InvalidNonceKey(InvalidNonceKey), - InvalidOwnerBytesLength(InvalidOwnerBytesLength), - NoOwnerAtIndex(NoOwnerAtIndex), - SelectorNotAllowed(SelectorNotAllowed), - Unauthorized(Unauthorized), - UnauthorizedCallContext(UnauthorizedCallContext), - UpgradeFailed(UpgradeFailed), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for MockCoinbaseSmartWalletErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AlreadyOwner(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialized(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidEthereumAddressOwner(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::InvalidNonceKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidOwnerBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NoOwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SelectorNotAllowed(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Unauthorized(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UnauthorizedCallContext(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UpgradeFailed(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockCoinbaseSmartWalletErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AlreadyOwner(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidEthereumAddressOwner(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidNonceKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidOwnerBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NoOwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SelectorNotAllowed(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Unauthorized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UnauthorizedCallContext(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UpgradeFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for MockCoinbaseSmartWalletErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector == ::selector() => true, - _ if selector == ::selector() => true, - _ if selector - == ::selector( - ) => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => true, - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for MockCoinbaseSmartWalletErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AlreadyOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialized(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidEthereumAddressOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidNonceKey(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidOwnerBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::NoOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::SelectorNotAllowed(element) => ::core::fmt::Display::fmt(element, f), - Self::Unauthorized(element) => ::core::fmt::Display::fmt(element, f), - Self::UnauthorizedCallContext(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for MockCoinbaseSmartWalletErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: AlreadyOwner) -> Self { - Self::AlreadyOwner(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: Initialized) -> Self { - Self::Initialized(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: InvalidEthereumAddressOwner) -> Self { - Self::InvalidEthereumAddressOwner(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: InvalidNonceKey) -> Self { - Self::InvalidNonceKey(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: InvalidOwnerBytesLength) -> Self { - Self::InvalidOwnerBytesLength(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: NoOwnerAtIndex) -> Self { - Self::NoOwnerAtIndex(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: SelectorNotAllowed) -> Self { - Self::SelectorNotAllowed(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: Unauthorized) -> Self { - Self::Unauthorized(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: UnauthorizedCallContext) -> Self { - Self::UnauthorizedCallContext(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletErrors { - fn from(value: UpgradeFailed) -> Self { - Self::UpgradeFailed(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "AddOwner", abi = "AddOwner(uint256,bytes)")] - pub struct AddOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "RemoveOwner", abi = "RemoveOwner(uint256,bytes)")] - pub struct RemoveOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Upgraded", abi = "Upgraded(address)")] - pub struct UpgradedFilter { - #[ethevent(indexed)] - pub implementation: ::ethers::core::types::Address, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockCoinbaseSmartWalletEvents { - AddOwnerFilter(AddOwnerFilter), - RemoveOwnerFilter(RemoveOwnerFilter), - UpgradedFilter(UpgradedFilter), - } - impl ::ethers::contract::EthLogDecode for MockCoinbaseSmartWalletEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AddOwnerFilter::decode_log(log) { - return Ok(MockCoinbaseSmartWalletEvents::AddOwnerFilter(decoded)); - } - if let Ok(decoded) = RemoveOwnerFilter::decode_log(log) { - return Ok(MockCoinbaseSmartWalletEvents::RemoveOwnerFilter(decoded)); - } - if let Ok(decoded) = UpgradedFilter::decode_log(log) { - return Ok(MockCoinbaseSmartWalletEvents::UpgradedFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockCoinbaseSmartWalletEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradedFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletEvents { - fn from(value: AddOwnerFilter) -> Self { - Self::AddOwnerFilter(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletEvents { - fn from(value: RemoveOwnerFilter) -> Self { - Self::RemoveOwnerFilter(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletEvents { - fn from(value: UpgradedFilter) -> Self { - Self::UpgradedFilter(value) - } - } - ///Container type for all input parameters for the `REPLAYABLE_NONCE_KEY` function with signature `REPLAYABLE_NONCE_KEY()` and selector `0x88ce4c7c` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "REPLAYABLE_NONCE_KEY", abi = "REPLAYABLE_NONCE_KEY()")] - pub struct ReplayableNonceKeyCall; - ///Container type for all input parameters for the `addOwnerAddress` function with signature `addOwnerAddress(address)` and selector `0x0f0f3f24` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerAddress", abi = "addOwnerAddress(address)")] - pub struct AddOwnerAddressCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `addOwnerPublicKey` function with signature `addOwnerPublicKey(bytes32,bytes32)` and selector `0x29565e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerPublicKey", abi = "addOwnerPublicKey(bytes32,bytes32)")] - pub struct AddOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `canSkipChainIdValidation` function with signature `canSkipChainIdValidation(bytes4)` and selector `0x9f9bcb34` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "canSkipChainIdValidation", - abi = "canSkipChainIdValidation(bytes4)" - )] - pub struct CanSkipChainIdValidationCall { - pub function_selector: [u8; 4], - } - ///Container type for all input parameters for the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "domainSeparator", abi = "domainSeparator()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "eip712Domain", abi = "eip712Domain()")] - pub struct Eip712DomainCall; - ///Container type for all input parameters for the `entryPoint` function with signature `entryPoint()` and selector `0xb0d691fe` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "entryPoint", abi = "entryPoint()")] - pub struct EntryPointCall; - ///Container type for all input parameters for the `execute` function with signature `execute(address,uint256,bytes)` and selector `0xb61d27f6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "execute", abi = "execute(address,uint256,bytes)")] - pub struct ExecuteCall { - pub target: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `executeBatch` function with signature `executeBatch((address,uint256,bytes)[])` and selector `0x34fcd5be` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "executeBatch", abi = "executeBatch((address,uint256,bytes)[])")] - pub struct ExecuteBatchCall { - pub calls: ::std::vec::Vec, - } - ///Container type for all input parameters for the `executeBatch` function with signature `executeBatch(uint256,(address,uint256,bytes)[])` and selector `0x577f3cbf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "executeBatch", - abi = "executeBatch(uint256,(address,uint256,bytes)[])" - )] - pub struct ExecuteBatchWithFillerCall { - pub filler: ::ethers::core::types::U256, - pub calls: ::std::vec::Vec, - } - ///Container type for all input parameters for the `executeWithoutChainIdValidation` function with signature `executeWithoutChainIdValidation(bytes)` and selector `0xbf6ba1fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "executeWithoutChainIdValidation", - abi = "executeWithoutChainIdValidation(bytes)" - )] - pub struct ExecuteWithoutChainIdValidationCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `getUserOpHashWithoutChainId` function with signature `getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x4f6e7f22` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "getUserOpHashWithoutChainId", - abi = "getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))" - )] - pub struct GetUserOpHashWithoutChainIdCall { - pub user_op: UserOperation, - } - ///Container type for all input parameters for the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "implementation", abi = "implementation()")] - pub struct ImplementationCall; - ///Container type for all input parameters for the `initialize` function with signature `initialize(bytes[])` and selector `0x6f2de70e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "initialize", abi = "initialize(bytes[])")] - pub struct InitializeCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - } - ///Container type for all input parameters for the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerAddress", abi = "isOwnerAddress(address)")] - pub struct IsOwnerAddressCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerBytes", abi = "isOwnerBytes(bytes)")] - pub struct IsOwnerBytesCall { - pub account: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerPublicKey", abi = "isOwnerPublicKey(bytes32,bytes32)")] - pub struct IsOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isValidSignature", abi = "isValidSignature(bytes32,bytes)")] - pub struct IsValidSignatureCall { - pub hash: [u8; 32], - pub signature: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nextOwnerIndex", abi = "nextOwnerIndex()")] - pub struct NextOwnerIndexCall; - ///Container type for all input parameters for the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "ownerAtIndex", abi = "ownerAtIndex(uint256)")] - pub struct OwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")] - pub struct ProxiableUUIDCall; - ///Container type for all input parameters for the `removeOwnerAtIndex` function with signature `removeOwnerAtIndex(uint256)` and selector `0x72de3b5a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "removeOwnerAtIndex", abi = "removeOwnerAtIndex(uint256)")] - pub struct RemoveOwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "replaySafeHash", abi = "replaySafeHash(bytes32)")] - pub struct ReplaySafeHashCall { - pub hash: [u8; 32], - } - ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")] - pub struct UpgradeToAndCallCall { - pub new_implementation: ::ethers::core::types::Address, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `validateUserOp` function with signature `validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0x3a871cdd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "validateUserOp", - abi = "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)" - )] - pub struct ValidateUserOpCall { - pub user_op: UserOperation, - pub user_op_hash: [u8; 32], - pub missing_account_funds: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockCoinbaseSmartWalletCalls { - ReplayableNonceKey(ReplayableNonceKeyCall), - AddOwnerAddress(AddOwnerAddressCall), - AddOwnerPublicKey(AddOwnerPublicKeyCall), - CanSkipChainIdValidation(CanSkipChainIdValidationCall), - DomainSeparator(DomainSeparatorCall), - Eip712Domain(Eip712DomainCall), - EntryPoint(EntryPointCall), - Execute(ExecuteCall), - ExecuteBatch(ExecuteBatchCall), - ExecuteBatchWithFiller(ExecuteBatchWithFillerCall), - ExecuteWithoutChainIdValidation(ExecuteWithoutChainIdValidationCall), - GetUserOpHashWithoutChainId(GetUserOpHashWithoutChainIdCall), - Implementation(ImplementationCall), - Initialize(InitializeCall), - IsOwnerAddress(IsOwnerAddressCall), - IsOwnerBytes(IsOwnerBytesCall), - IsOwnerPublicKey(IsOwnerPublicKeyCall), - IsValidSignature(IsValidSignatureCall), - NextOwnerIndex(NextOwnerIndexCall), - OwnerAtIndex(OwnerAtIndexCall), - ProxiableUUID(ProxiableUUIDCall), - RemoveOwnerAtIndex(RemoveOwnerAtIndexCall), - ReplaySafeHash(ReplaySafeHashCall), - UpgradeToAndCall(UpgradeToAndCallCall), - ValidateUserOp(ValidateUserOpCall), - } - impl ::ethers::core::abi::AbiDecode for MockCoinbaseSmartWalletCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReplayableNonceKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerAddress(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::CanSkipChainIdValidation(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::Eip712Domain(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::EntryPoint(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Execute(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ExecuteBatch(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ExecuteBatchWithFiller(decoded)); - } - if let Ok(decoded) = - ::decode( - data, - ) - { - return Ok(Self::ExecuteWithoutChainIdValidation(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::GetUserOpHashWithoutChainId(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::Implementation(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerAddress(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::IsOwnerBytes(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsValidSignature(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NextOwnerIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::OwnerAtIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ProxiableUUID(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::RemoveOwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ReplaySafeHash(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UpgradeToAndCall(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidateUserOp(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockCoinbaseSmartWalletCalls { - fn encode(self) -> Vec { - match self { - Self::ReplayableNonceKey(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::AddOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::AddOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::CanSkipChainIdValidation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Eip712Domain(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::EntryPoint(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Execute(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ExecuteBatch(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ExecuteBatchWithFiller(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ExecuteWithoutChainIdValidation(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::GetUserOpHashWithoutChainId(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Implementation(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialize(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerBytes(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsValidSignature(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NextOwnerIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ProxiableUUID(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RemoveOwnerAtIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::ReplaySafeHash(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UpgradeToAndCall(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateUserOp(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockCoinbaseSmartWalletCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ReplayableNonceKey(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::CanSkipChainIdValidation(element) => ::core::fmt::Display::fmt(element, f), - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f), - Self::EntryPoint(element) => ::core::fmt::Display::fmt(element, f), - Self::Execute(element) => ::core::fmt::Display::fmt(element, f), - Self::ExecuteBatch(element) => ::core::fmt::Display::fmt(element, f), - Self::ExecuteBatchWithFiller(element) => ::core::fmt::Display::fmt(element, f), - Self::ExecuteWithoutChainIdValidation(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::GetUserOpHashWithoutChainId(element) => ::core::fmt::Display::fmt(element, f), - Self::Implementation(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerBytes(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::IsValidSignature(element) => ::core::fmt::Display::fmt(element, f), - Self::NextOwnerIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::ReplaySafeHash(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateUserOp(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ReplayableNonceKeyCall) -> Self { - Self::ReplayableNonceKey(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: AddOwnerAddressCall) -> Self { - Self::AddOwnerAddress(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: AddOwnerPublicKeyCall) -> Self { - Self::AddOwnerPublicKey(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: CanSkipChainIdValidationCall) -> Self { - Self::CanSkipChainIdValidation(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: Eip712DomainCall) -> Self { - Self::Eip712Domain(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: EntryPointCall) -> Self { - Self::EntryPoint(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ExecuteCall) -> Self { - Self::Execute(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ExecuteBatchCall) -> Self { - Self::ExecuteBatch(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ExecuteBatchWithFillerCall) -> Self { - Self::ExecuteBatchWithFiller(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ExecuteWithoutChainIdValidationCall) -> Self { - Self::ExecuteWithoutChainIdValidation(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: GetUserOpHashWithoutChainIdCall) -> Self { - Self::GetUserOpHashWithoutChainId(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ImplementationCall) -> Self { - Self::Implementation(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: IsOwnerAddressCall) -> Self { - Self::IsOwnerAddress(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: IsOwnerBytesCall) -> Self { - Self::IsOwnerBytes(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: IsOwnerPublicKeyCall) -> Self { - Self::IsOwnerPublicKey(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: IsValidSignatureCall) -> Self { - Self::IsValidSignature(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: NextOwnerIndexCall) -> Self { - Self::NextOwnerIndex(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: OwnerAtIndexCall) -> Self { - Self::OwnerAtIndex(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ProxiableUUIDCall) -> Self { - Self::ProxiableUUID(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: RemoveOwnerAtIndexCall) -> Self { - Self::RemoveOwnerAtIndex(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ReplaySafeHashCall) -> Self { - Self::ReplaySafeHash(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: UpgradeToAndCallCall) -> Self { - Self::UpgradeToAndCall(value) - } - } - impl ::core::convert::From for MockCoinbaseSmartWalletCalls { - fn from(value: ValidateUserOpCall) -> Self { - Self::ValidateUserOp(value) - } - } - ///Container type for all return fields from the `REPLAYABLE_NONCE_KEY` function with signature `REPLAYABLE_NONCE_KEY()` and selector `0x88ce4c7c` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ReplayableNonceKeyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `canSkipChainIdValidation` function with signature `canSkipChainIdValidation(bytes4)` and selector `0x9f9bcb34` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct CanSkipChainIdValidationReturn(pub bool); - ///Container type for all return fields from the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct Eip712DomainReturn { - pub fields: [u8; 1], - pub name: ::std::string::String, - pub version: ::std::string::String, - pub chain_id: ::ethers::core::types::U256, - pub verifying_contract: ::ethers::core::types::Address, - pub salt: [u8; 32], - pub extensions: ::std::vec::Vec<::ethers::core::types::U256>, - } - ///Container type for all return fields from the `entryPoint` function with signature `entryPoint()` and selector `0xb0d691fe` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct EntryPointReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `getUserOpHashWithoutChainId` function with signature `getUserOpHashWithoutChainId((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))` and selector `0x4f6e7f22` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetUserOpHashWithoutChainIdReturn { - pub user_op_hash: [u8; 32], - } - ///Container type for all return fields from the `implementation` function with signature `implementation()` and selector `0x5c60da1b` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ImplementationReturn { - pub address: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerAddressReturn(pub bool); - ///Container type for all return fields from the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerBytesReturn(pub bool); - ///Container type for all return fields from the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerPublicKeyReturn(pub bool); - ///Container type for all return fields from the `isValidSignature` function with signature `isValidSignature(bytes32,bytes)` and selector `0x1626ba7e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsValidSignatureReturn { - pub result: [u8; 4], - } - ///Container type for all return fields from the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NextOwnerIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OwnerAtIndexReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ProxiableUUIDReturn(pub [u8; 32]); - ///Container type for all return fields from the `replaySafeHash` function with signature `replaySafeHash(bytes32)` and selector `0xce1506be` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ReplaySafeHashReturn(pub [u8; 32]); - ///Container type for all return fields from the `validateUserOp` function with signature `validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0x3a871cdd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ValidateUserOpReturn { - pub validation_data: ::ethers::core::types::U256, - } -} diff --git a/xmtp_id/src/bindings/mock_entry_point.rs b/xmtp_id/src/bindings/mock_entry_point.rs deleted file mode 100644 index c5d5cbd42..000000000 --- a/xmtp_id/src/bindings/mock_entry_point.rs +++ /dev/null @@ -1,468 +0,0 @@ -pub use mock_entry_point::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_entry_point { - pub use super::super::shared_types::*; - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("depositTo"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("depositTo"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("validateUserOp"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("validateUserOp"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOp"), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct UserOperation"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("userOpHash"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("missingAccountFunds",), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("validationData"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("withdrawTo"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("withdrawTo"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: true, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKENTRYPOINT_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x06O\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0CW`\x005`\xE0\x1C\x80c \\(x\x14a\0XW\x80cp\xA0\x821\x14a\0kW\x80c\xA1\x9D\x19\xD5\x14a\0\xAAW\x80c\xB7`\xFA\xF9\x14a\0\xBDW`\0\x80\xFD[6a\0SWa\0Q3a\0\xCBV[\0[`\0\x80\xFD[a\0Qa\0f6`\x04a\x02\x1DV[a\0\xFBV[4\x80\x15a\0wW`\0\x80\xFD[Pa\0\x98a\0\x866`\x04a\x02GV[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0\x98a\0\xB86`\x04a\x036V[a\x01\x82V[a\0Qa\0\xCB6`\x04a\x02GV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\0\xF3\x90\x84\x90a\x04\x9CV[\x90\x91UPPPV[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x01\x1A\x90\x84\x90a\x04\xB5V[\x90\x91UPP`@Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x01jW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01oV[``\x91P[PP\x90P\x80a\x01}W`\0\x80\xFD[PPPV[`@Qc:\x87\x1C\xDD`\xE0\x1B\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x86\x16\x90c:\x87\x1C\xDD\x90a\x01\xB5\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x05\x0EV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x01\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xF8\x91\x90a\x06\0V[\x95\x94PPPPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\x18W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x020W`\0\x80\xFD[a\x029\x83a\x02\x01V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x02YW`\0\x80\xFD[a\x02b\x82a\x02\x01V[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x02\xA3Wa\x02\xA3a\x02iV[`@R\x90V[`\0\x82`\x1F\x83\x01\x12a\x02\xBAW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02\xD5Wa\x02\xD5a\x02iV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x02\xFDWa\x02\xFDa\x02iV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x03\x16W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x03LW`\0\x80\xFD[a\x03U\x85a\x02\x01V[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03rW`\0\x80\xFD[\x90\x86\x01\x90a\x01`\x82\x89\x03\x12\x15a\x03\x87W`\0\x80\xFD[a\x03\x8Fa\x02\x7FV[a\x03\x98\x83a\x02\x01V[\x81R` \x83\x015` \x82\x01R`@\x83\x015\x82\x81\x11\x15a\x03\xB6W`\0\x80\xFD[a\x03\xC2\x8A\x82\x86\x01a\x02\xA9V[`@\x83\x01RP``\x83\x015\x82\x81\x11\x15a\x03\xDAW`\0\x80\xFD[a\x03\xE6\x8A\x82\x86\x01a\x02\xA9V[``\x83\x01RP`\x80\x83\x015`\x80\x82\x01R`\xA0\x83\x015`\xA0\x82\x01R`\xC0\x83\x015`\xC0\x82\x01R`\xE0\x83\x015`\xE0\x82\x01Ra\x01\0\x80\x84\x015\x81\x83\x01RPa\x01 \x80\x84\x015\x83\x81\x11\x15a\x044W`\0\x80\xFD[a\x04@\x8B\x82\x87\x01a\x02\xA9V[\x82\x84\x01RPPa\x01@\x80\x84\x015\x83\x81\x11\x15a\x04ZW`\0\x80\xFD[a\x04f\x8B\x82\x87\x01a\x02\xA9V[\x91\x83\x01\x91\x90\x91RP\x95\x98\x95\x97PPPP`@\x84\x015\x93``\x015\x92\x91PPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x04\xAFWa\x04\xAFa\x04\x86V[\x92\x91PPV[\x81\x81\x03\x81\x81\x11\x15a\x04\xAFWa\x04\xAFa\x04\x86V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x04\xEEW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x04\xD2V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[``\x81Ra\x05(``\x82\x01\x85Q`\x01`\x01`\xA0\x1B\x03\x16\x90RV[` \x84\x01Q`\x80\x82\x01R`\0`@\x85\x01Qa\x01`\x80`\xA0\x85\x01Ra\x05Pa\x01\xC0\x85\x01\x83a\x04\xC8V[\x91P``\x87\x01Q`_\x19\x80\x86\x85\x03\x01`\xC0\x87\x01Ra\x05n\x84\x83a\x04\xC8V[\x93P`\x80\x89\x01Q`\xE0\x87\x01R`\xA0\x89\x01Q\x91Pa\x01\0\x82\x81\x88\x01R`\xC0\x8A\x01Q\x92Pa\x01 \x83\x81\x89\x01R`\xE0\x8B\x01Q\x93Pa\x01@\x84\x81\x8A\x01R\x82\x8C\x01Q\x86\x8A\x01R\x81\x8C\x01Q\x95P\x83\x89\x88\x03\x01a\x01\x80\x8A\x01Ra\x05\xCA\x87\x87a\x04\xC8V[\x96P\x80\x8C\x01Q\x95PPPP\x80\x86\x85\x03\x01a\x01\xA0\x87\x01RPPa\x05\xEC\x82\x82a\x04\xC8V[` \x85\x01\x96\x90\x96RPPP`@\x01R\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x06\x12W`\0\x80\xFD[PQ\x91\x90PV\xFE\xA2dipfsX\"\x12 \xF4:J\xCD\xE6\xE3\xF3\xAF\xC1\xCC\xFA\xE5\xEF~?\x1B$9n\x8FV\x92b\x02\xC8\xBC\xF9\xD3\xD8|\xAA\xBCdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MOCKENTRYPOINT_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\0CW`\x005`\xE0\x1C\x80c \\(x\x14a\0XW\x80cp\xA0\x821\x14a\0kW\x80c\xA1\x9D\x19\xD5\x14a\0\xAAW\x80c\xB7`\xFA\xF9\x14a\0\xBDW`\0\x80\xFD[6a\0SWa\0Q3a\0\xCBV[\0[`\0\x80\xFD[a\0Qa\0f6`\x04a\x02\x1DV[a\0\xFBV[4\x80\x15a\0wW`\0\x80\xFD[Pa\0\x98a\0\x866`\x04a\x02GV[`\0` \x81\x90R\x90\x81R`@\x90 T\x81V[`@Q\x90\x81R` \x01`@Q\x80\x91\x03\x90\xF3[a\0\x98a\0\xB86`\x04a\x036V[a\x01\x82V[a\0Qa\0\xCB6`\x04a\x02GV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R` \x81\x90R`@\x81 \x80T4\x92\x90a\0\xF3\x90\x84\x90a\x04\x9CV[\x90\x91UPPPV[3`\0\x90\x81R` \x81\x90R`@\x81 \x80T\x83\x92\x90a\x01\x1A\x90\x84\x90a\x04\xB5V[\x90\x91UPP`@Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83\x90\x83\x81\x81\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x01jW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01oV[``\x91P[PP\x90P\x80a\x01}W`\0\x80\xFD[PPPV[`@Qc:\x87\x1C\xDD`\xE0\x1B\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x86\x16\x90c:\x87\x1C\xDD\x90a\x01\xB5\x90\x87\x90\x87\x90\x87\x90`\x04\x01a\x05\x0EV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x01\xD4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xF8\x91\x90a\x06\0V[\x95\x94PPPPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\x18W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x020W`\0\x80\xFD[a\x029\x83a\x02\x01V[\x94` \x93\x90\x93\x015\x93PPPV[`\0` \x82\x84\x03\x12\x15a\x02YW`\0\x80\xFD[a\x02b\x82a\x02\x01V[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x02\xA3Wa\x02\xA3a\x02iV[`@R\x90V[`\0\x82`\x1F\x83\x01\x12a\x02\xBAW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x02\xD5Wa\x02\xD5a\x02iV[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x02\xFDWa\x02\xFDa\x02iV[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\x03\x16W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x03LW`\0\x80\xFD[a\x03U\x85a\x02\x01V[\x93P` \x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x03rW`\0\x80\xFD[\x90\x86\x01\x90a\x01`\x82\x89\x03\x12\x15a\x03\x87W`\0\x80\xFD[a\x03\x8Fa\x02\x7FV[a\x03\x98\x83a\x02\x01V[\x81R` \x83\x015` \x82\x01R`@\x83\x015\x82\x81\x11\x15a\x03\xB6W`\0\x80\xFD[a\x03\xC2\x8A\x82\x86\x01a\x02\xA9V[`@\x83\x01RP``\x83\x015\x82\x81\x11\x15a\x03\xDAW`\0\x80\xFD[a\x03\xE6\x8A\x82\x86\x01a\x02\xA9V[``\x83\x01RP`\x80\x83\x015`\x80\x82\x01R`\xA0\x83\x015`\xA0\x82\x01R`\xC0\x83\x015`\xC0\x82\x01R`\xE0\x83\x015`\xE0\x82\x01Ra\x01\0\x80\x84\x015\x81\x83\x01RPa\x01 \x80\x84\x015\x83\x81\x11\x15a\x044W`\0\x80\xFD[a\x04@\x8B\x82\x87\x01a\x02\xA9V[\x82\x84\x01RPPa\x01@\x80\x84\x015\x83\x81\x11\x15a\x04ZW`\0\x80\xFD[a\x04f\x8B\x82\x87\x01a\x02\xA9V[\x91\x83\x01\x91\x90\x91RP\x95\x98\x95\x97PPPP`@\x84\x015\x93``\x015\x92\x91PPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x04\xAFWa\x04\xAFa\x04\x86V[\x92\x91PPV[\x81\x81\x03\x81\x81\x11\x15a\x04\xAFWa\x04\xAFa\x04\x86V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x04\xEEW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x04\xD2V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[``\x81Ra\x05(``\x82\x01\x85Q`\x01`\x01`\xA0\x1B\x03\x16\x90RV[` \x84\x01Q`\x80\x82\x01R`\0`@\x85\x01Qa\x01`\x80`\xA0\x85\x01Ra\x05Pa\x01\xC0\x85\x01\x83a\x04\xC8V[\x91P``\x87\x01Q`_\x19\x80\x86\x85\x03\x01`\xC0\x87\x01Ra\x05n\x84\x83a\x04\xC8V[\x93P`\x80\x89\x01Q`\xE0\x87\x01R`\xA0\x89\x01Q\x91Pa\x01\0\x82\x81\x88\x01R`\xC0\x8A\x01Q\x92Pa\x01 \x83\x81\x89\x01R`\xE0\x8B\x01Q\x93Pa\x01@\x84\x81\x8A\x01R\x82\x8C\x01Q\x86\x8A\x01R\x81\x8C\x01Q\x95P\x83\x89\x88\x03\x01a\x01\x80\x8A\x01Ra\x05\xCA\x87\x87a\x04\xC8V[\x96P\x80\x8C\x01Q\x95PPPP\x80\x86\x85\x03\x01a\x01\xA0\x87\x01RPPa\x05\xEC\x82\x82a\x04\xC8V[` \x85\x01\x96\x90\x96RPPP`@\x01R\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x06\x12W`\0\x80\xFD[PQ\x91\x90PV\xFE\xA2dipfsX\"\x12 \xF4:J\xCD\xE6\xE3\xF3\xAF\xC1\xCC\xFA\xE5\xEF~?\x1B$9n\x8FV\x92b\x02\xC8\xBC\xF9\xD3\xD8|\xAA\xBCdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKENTRYPOINT_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockEntryPoint(::ethers::contract::Contract); - impl ::core::clone::Clone for MockEntryPoint { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockEntryPoint { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockEntryPoint { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockEntryPoint { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockEntryPoint)) - .field(&self.address()) - .finish() - } - } - impl MockEntryPoint { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKENTRYPOINT_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKENTRYPOINT_ABI.clone(), - MOCKENTRYPOINT_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `depositTo` (0xb760faf9) function - pub fn deposit_to( - &self, - to: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([183, 96, 250, 249], to) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `validateUserOp` (0xa19d19d5) function - pub fn validate_user_op( - &self, - account: ::ethers::core::types::Address, - user_op: UserOperation, - user_op_hash: [u8; 32], - missing_account_funds: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [161, 157, 25, 213], - (account, user_op, user_op_hash, missing_account_funds), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `withdrawTo` (0x205c2878) function - pub fn withdraw_to( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([32, 92, 40, 120], (to, amount)) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> - for MockEntryPoint - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `depositTo` function with signature `depositTo(address)` and selector `0xb760faf9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "depositTo", abi = "depositTo(address)")] - pub struct DepositToCall { - pub to: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `validateUserOp` function with signature `validateUserOp(address,(address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0xa19d19d5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "validateUserOp", - abi = "validateUserOp(address,(address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)" - )] - pub struct ValidateUserOpCall { - pub account: ::ethers::core::types::Address, - pub user_op: UserOperation, - pub user_op_hash: [u8; 32], - pub missing_account_funds: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `withdrawTo` function with signature `withdrawTo(address,uint256)` and selector `0x205c2878` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "withdrawTo", abi = "withdrawTo(address,uint256)")] - pub struct WithdrawToCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockEntryPointCalls { - BalanceOf(BalanceOfCall), - DepositTo(DepositToCall), - ValidateUserOp(ValidateUserOpCall), - WithdrawTo(WithdrawToCall), - } - impl ::ethers::core::abi::AbiDecode for MockEntryPointCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::DepositTo(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ValidateUserOp(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::WithdrawTo(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockEntryPointCalls { - fn encode(self) -> Vec { - match self { - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::DepositTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::ValidateUserOp(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::WithdrawTo(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockEntryPointCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::DepositTo(element) => ::core::fmt::Display::fmt(element, f), - Self::ValidateUserOp(element) => ::core::fmt::Display::fmt(element, f), - Self::WithdrawTo(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockEntryPointCalls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockEntryPointCalls { - fn from(value: DepositToCall) -> Self { - Self::DepositTo(value) - } - } - impl ::core::convert::From for MockEntryPointCalls { - fn from(value: ValidateUserOpCall) -> Self { - Self::ValidateUserOp(value) - } - } - impl ::core::convert::From for MockEntryPointCalls { - fn from(value: WithdrawToCall) -> Self { - Self::WithdrawTo(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `validateUserOp` function with signature `validateUserOp(address,(address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)` and selector `0xa19d19d5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ValidateUserOpReturn { - pub validation_data: ::ethers::core::types::U256, - } -} diff --git a/xmtp_id/src/bindings/mock_erc20.rs b/xmtp_id/src/bindings/mock_erc20.rs deleted file mode 100644 index 6bc053d3a..000000000 --- a/xmtp_id/src/bindings/mock_erc20.rs +++ /dev/null @@ -1,1299 +0,0 @@ -pub use mock_erc20::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_erc20 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("DOMAIN_SEPARATOR"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("allowance"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("allowance"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("decimals"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("decimals"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_symbol"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_decimals"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("nonces"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nonces"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("permit"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("permit"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("value"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("deadline"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("v"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint8"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("r"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("s"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("totalSupply"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("totalSupply"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("transfer"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("amount"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: false, - }, - ], - anonymous: false, - },], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKERC20_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x0Ej\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xCFW`\x005`\xE0\x1C\x80c6D\xE5\x15\x11a\0\x8CW\x80c\x95\xD8\x9BA\x11a\0fW\x80c\x95\xD8\x9BA\x14a\x01\xBBW\x80c\xA9\x05\x9C\xBB\x14a\x01\xC3W\x80c\xD5\x05\xAC\xCF\x14a\x01\xD6W\x80c\xDDb\xED>\x14a\x01\xE9W`\0\x80\xFD[\x80c6D\xE5\x15\x14a\x01sW\x80cp\xA0\x821\x14a\x01{W\x80c~\xCE\xBE\0\x14a\x01\x9BW`\0\x80\xFD[\x80c\x06\xFD\xDE\x03\x14a\0\xD4W\x80c\t^\xA7\xB3\x14a\0\xF2W\x80c\x16$\xF6\xC6\x14a\x01\x15W\x80c\x18\x16\r\xDD\x14a\x01*W\x80c#\xB8r\xDD\x14a\x01AW\x80c1<\xE5g\x14a\x01TW[`\0\x80\xFD[a\0\xDCa\x02\x14V[`@Qa\0\xE9\x91\x90a\tmV[`@Q\x80\x91\x03\x90\xF3[a\x01\x05a\x01\x006`\x04a\t\xD8V[a\x02\xA2V[`@Q\x90\x15\x15\x81R` \x01a\0\xE9V[a\x01(a\x01#6`\x04a\n\xB6V[a\x03\x0FV[\0[a\x013`\x03T\x81V[`@Q\x90\x81R` \x01a\0\xE9V[a\x01\x05a\x01O6`\x04a\x0B*V[a\x03\xAEV[`\x02Ta\x01a\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\0\xE9V[a\x013a\x04\xC3V[a\x013a\x01\x896`\x04a\x0BfV[`\x04` R`\0\x90\x81R`@\x90 T\x81V[a\x013a\x01\xA96`\x04a\x0BfV[`\x08` R`\0\x90\x81R`@\x90 T\x81V[a\0\xDCa\x04\xE9V[a\x01\x05a\x01\xD16`\x04a\t\xD8V[a\x04\xF6V[a\x01(a\x01\xE46`\x04a\x0B\x81V[a\x05\x8DV[a\x013a\x01\xF76`\x04a\x0B\xEBV[`\x05` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`\0\x80Ta\x02!\x90a\x0C\x1EV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x02M\x90a\x0C\x1EV[\x80\x15a\x02\x9AW\x80`\x1F\x10a\x02oWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x02\x9AV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x02}W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[3`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x85\x90UQ\x91\x92\x90\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x90a\x02\xFD\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01[\x92\x91PPV[`\tT`\xFF\x16\x15a\x03]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0a\x03i\x84\x82a\x0C\xA9V[P`\x01a\x03v\x83\x82a\x0C\xA9V[P`\x02\x80T`\xFF\x19\x16`\xFF\x83\x16\x17\x90Ua\x03\x8Ea\x07\xEBV[`\x06Ua\x03\x99a\x08\x04V[`\x07UPP`\t\x80T`\xFF\x19\x16`\x01\x17\x90UPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 T`\0\x19\x81\x14a\x04\nWa\x03\xE5\x81\x84a\x08\xA7V[`\x01`\x01`\xA0\x1B\x03\x86\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 U[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x04` R`@\x90 Ta\x04-\x90\x84a\x08\xA7V[`\x01`\x01`\xA0\x1B\x03\x80\x87\x16`\0\x90\x81R`\x04` R`@\x80\x82 \x93\x90\x93U\x90\x86\x16\x81R Ta\x04\\\x90\x84a\t\nV[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16`\0\x81\x81R`\x04` R`@\x90\x81\x90 \x93\x90\x93U\x91Q\x90\x87\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90a\x04\xB0\x90\x87\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[`\0`\x06Ta\x04\xD0a\x07\xEBV[\x14a\x04\xE2Wa\x04\xDDa\x08\x04V[\x90P\x90V[P`\x07T\x90V[`\x01\x80Ta\x02!\x90a\x0C\x1EV[3`\0\x90\x81R`\x04` R`@\x81 Ta\x05\x10\x90\x83a\x08\xA7V[3`\0\x90\x81R`\x04` R`@\x80\x82 \x92\x90\x92U`\x01`\x01`\xA0\x1B\x03\x85\x16\x81R Ta\x05<\x90\x83a\t\nV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x81\x81R`\x04` R`@\x90\x81\x90 \x92\x90\x92U\x90Q3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90a\x02\xFD\x90\x86\x81R` \x01\x90V[B\x84\x10\x15a\x05\xDDW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03TV[`\0`\x01a\x05\xE9a\x04\xC3V[`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x90\x81R`\x08` R`@\x81 \x80T\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x92\x8D\x92\x8D\x92\x8D\x92\x90\x91\x90a\x067\x83a\r\x7FV[\x90\x91UP`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x88\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 `@Q` \x01a\x06\xB0\x92\x91\x90a\x19\x01`\xF0\x1B\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\0\x84R\x90\x83\x01\x80\x83RR`\xFF\x87\x16\x90\x82\x01R``\x81\x01\x85\x90R`\x80\x81\x01\x84\x90R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x07\x0EW=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16\x15\x80\x15\x90a\x07DWP\x87`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14[a\x07\x81W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R`d\x01a\x03TV[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x8B\x85\x16\x80\x85R\x90\x83R\x92\x81\x90 \x8A\x90UQ\x89\x81R\x91\x92\x8B\x16\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01`@Q\x80\x91\x03\x90\xA3PPPPPPPPV[`\0a\ti\x80a\x07\xFDc\xFF\xFF\xFF\xFF\x82\x16V[\x92PPP\x90V[`\0\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F`\0`@Qa\x086\x91\x90a\r\x98V[`@Q\x80\x91\x03\x90 \x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6a\x08ga\x07\xEBV[`@\x80Q` \x81\x01\x95\x90\x95R\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[`\0\x81\x83\x10\x15a\x08\xF9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC20: subtraction underflow\0\0\0\0`D\x82\x01R`d\x01a\x03TV[a\t\x03\x82\x84a\x0E\x0EV[\x93\x92PPPV[`\0\x80a\t\x17\x83\x85a\x0E!V[\x90P\x83\x81\x10\x15a\t\x03W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC20: addition overflow\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03TV[F\x90V[`\0` \x80\x83R\x83Q\x80` \x85\x01R`\0[\x81\x81\x10\x15a\t\x9BW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\t\x7FV[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\t\xD3W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\t\xEBW`\0\x80\xFD[a\t\xF4\x83a\t\xBCV[\x94` \x93\x90\x93\x015\x93PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x82`\x1F\x83\x01\x12a\n)W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\nDWa\nDa\n\x02V[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\nlWa\nla\n\x02V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\n\x85W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[\x805`\xFF\x81\x16\x81\x14a\t\xD3W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xCBW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n\xE3W`\0\x80\xFD[a\n\xEF\x87\x83\x88\x01a\n\x18V[\x94P` \x86\x015\x91P\x80\x82\x11\x15a\x0B\x05W`\0\x80\xFD[Pa\x0B\x12\x86\x82\x87\x01a\n\x18V[\x92PPa\x0B!`@\x85\x01a\n\xA5V[\x90P\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\x0B?W`\0\x80\xFD[a\x0BH\x84a\t\xBCV[\x92Pa\x0BV` \x85\x01a\t\xBCV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x0BxW`\0\x80\xFD[a\t\x03\x82a\t\xBCV[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x0B\x9CW`\0\x80\xFD[a\x0B\xA5\x88a\t\xBCV[\x96Pa\x0B\xB3` \x89\x01a\t\xBCV[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa\x0B\xCF`\x80\x89\x01a\n\xA5V[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xFEW`\0\x80\xFD[a\x0C\x07\x83a\t\xBCV[\x91Pa\x0C\x15` \x84\x01a\t\xBCV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0C2W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x0CRWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0C\xA4W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x0C\x81WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0C\xA0W\x82\x81U`\x01\x01a\x0C\x8DV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\xC3Wa\x0C\xC3a\n\x02V[a\x0C\xD7\x81a\x0C\xD1\x84Ta\x0C\x1EV[\x84a\x0CXV[` \x80`\x1F\x83\x11`\x01\x81\x14a\r\x0CW`\0\x84\x15a\x0C\xF4WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0C\xA0V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\r;W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\r\x1CV[P\x85\x82\x10\x15a\rYW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\r\x91Wa\r\x91a\riV[P`\x01\x01\x90V[`\0\x80\x83Ta\r\xA6\x81a\x0C\x1EV[`\x01\x82\x81\x16\x80\x15a\r\xBEW`\x01\x81\x14a\r\xD3Wa\x0E\x02V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa\x0E\x02V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a\r\xF9W\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a\r\xE0V[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[\x81\x81\x03\x81\x81\x11\x15a\x03\tWa\x03\ta\riV[\x80\x82\x01\x80\x82\x11\x15a\x03\tWa\x03\ta\riV\xFE\xA2dipfsX\"\x12 ~\xCC:\x08\xB5\x03l\xB5d\x08\xBEJ\x0B\0\x92\\\x99D\xA8\xD8\x92\x19}?D\xDF5-\x9D\xCE\xCF\x80dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MOCKERC20_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xCFW`\x005`\xE0\x1C\x80c6D\xE5\x15\x11a\0\x8CW\x80c\x95\xD8\x9BA\x11a\0fW\x80c\x95\xD8\x9BA\x14a\x01\xBBW\x80c\xA9\x05\x9C\xBB\x14a\x01\xC3W\x80c\xD5\x05\xAC\xCF\x14a\x01\xD6W\x80c\xDDb\xED>\x14a\x01\xE9W`\0\x80\xFD[\x80c6D\xE5\x15\x14a\x01sW\x80cp\xA0\x821\x14a\x01{W\x80c~\xCE\xBE\0\x14a\x01\x9BW`\0\x80\xFD[\x80c\x06\xFD\xDE\x03\x14a\0\xD4W\x80c\t^\xA7\xB3\x14a\0\xF2W\x80c\x16$\xF6\xC6\x14a\x01\x15W\x80c\x18\x16\r\xDD\x14a\x01*W\x80c#\xB8r\xDD\x14a\x01AW\x80c1<\xE5g\x14a\x01TW[`\0\x80\xFD[a\0\xDCa\x02\x14V[`@Qa\0\xE9\x91\x90a\tmV[`@Q\x80\x91\x03\x90\xF3[a\x01\x05a\x01\x006`\x04a\t\xD8V[a\x02\xA2V[`@Q\x90\x15\x15\x81R` \x01a\0\xE9V[a\x01(a\x01#6`\x04a\n\xB6V[a\x03\x0FV[\0[a\x013`\x03T\x81V[`@Q\x90\x81R` \x01a\0\xE9V[a\x01\x05a\x01O6`\x04a\x0B*V[a\x03\xAEV[`\x02Ta\x01a\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\0\xE9V[a\x013a\x04\xC3V[a\x013a\x01\x896`\x04a\x0BfV[`\x04` R`\0\x90\x81R`@\x90 T\x81V[a\x013a\x01\xA96`\x04a\x0BfV[`\x08` R`\0\x90\x81R`@\x90 T\x81V[a\0\xDCa\x04\xE9V[a\x01\x05a\x01\xD16`\x04a\t\xD8V[a\x04\xF6V[a\x01(a\x01\xE46`\x04a\x0B\x81V[a\x05\x8DV[a\x013a\x01\xF76`\x04a\x0B\xEBV[`\x05` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`\0\x80Ta\x02!\x90a\x0C\x1EV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x02M\x90a\x0C\x1EV[\x80\x15a\x02\x9AW\x80`\x1F\x10a\x02oWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x02\x9AV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x02}W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[3`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x85\x90UQ\x91\x92\x90\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x90a\x02\xFD\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01[\x92\x91PPV[`\tT`\xFF\x16\x15a\x03]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\0a\x03i\x84\x82a\x0C\xA9V[P`\x01a\x03v\x83\x82a\x0C\xA9V[P`\x02\x80T`\xFF\x19\x16`\xFF\x83\x16\x17\x90Ua\x03\x8Ea\x07\xEBV[`\x06Ua\x03\x99a\x08\x04V[`\x07UPP`\t\x80T`\xFF\x19\x16`\x01\x17\x90UPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x81 T`\0\x19\x81\x14a\x04\nWa\x03\xE5\x81\x84a\x08\xA7V[`\x01`\x01`\xA0\x1B\x03\x86\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 U[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x04` R`@\x90 Ta\x04-\x90\x84a\x08\xA7V[`\x01`\x01`\xA0\x1B\x03\x80\x87\x16`\0\x90\x81R`\x04` R`@\x80\x82 \x93\x90\x93U\x90\x86\x16\x81R Ta\x04\\\x90\x84a\t\nV[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16`\0\x81\x81R`\x04` R`@\x90\x81\x90 \x93\x90\x93U\x91Q\x90\x87\x16\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90a\x04\xB0\x90\x87\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA3P`\x01\x94\x93PPPPV[`\0`\x06Ta\x04\xD0a\x07\xEBV[\x14a\x04\xE2Wa\x04\xDDa\x08\x04V[\x90P\x90V[P`\x07T\x90V[`\x01\x80Ta\x02!\x90a\x0C\x1EV[3`\0\x90\x81R`\x04` R`@\x81 Ta\x05\x10\x90\x83a\x08\xA7V[3`\0\x90\x81R`\x04` R`@\x80\x82 \x92\x90\x92U`\x01`\x01`\xA0\x1B\x03\x85\x16\x81R Ta\x05<\x90\x83a\t\nV[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x81\x81R`\x04` R`@\x90\x81\x90 \x92\x90\x92U\x90Q3\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90a\x02\xFD\x90\x86\x81R` \x01\x90V[B\x84\x10\x15a\x05\xDDW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FPERMIT_DEADLINE_EXPIRED\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03TV[`\0`\x01a\x05\xE9a\x04\xC3V[`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x90\x81R`\x08` R`@\x81 \x80T\x7Fnq\xED\xAE\x12\xB1\xB9\x7FM\x1F`7\x0F\xEF\x10\x10_\xA2\xFA\xAE\x01&\x11J\x16\x9Cd\x84]a&\xC9\x92\x8D\x92\x8D\x92\x8D\x92\x90\x91\x90a\x067\x83a\r\x7FV[\x90\x91UP`@\x80Q` \x81\x01\x96\x90\x96R`\x01`\x01`\xA0\x1B\x03\x94\x85\x16\x90\x86\x01R\x92\x90\x91\x16``\x84\x01R`\x80\x83\x01R`\xA0\x82\x01R`\xC0\x81\x01\x88\x90R`\xE0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 `@Q` \x01a\x06\xB0\x92\x91\x90a\x19\x01`\xF0\x1B\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\0\x84R\x90\x83\x01\x80\x83RR`\xFF\x87\x16\x90\x82\x01R``\x81\x01\x85\x90R`\x80\x81\x01\x84\x90R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x07\x0EW=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16\x15\x80\x15\x90a\x07DWP\x87`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14[a\x07\x81W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0E`$\x82\x01Rm$\xA7+ \xA6$\xA2/\xA9\xA4\xA3\xA7\"\xA9`\x91\x1B`D\x82\x01R`d\x01a\x03TV[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x8B\x85\x16\x80\x85R\x90\x83R\x92\x81\x90 \x8A\x90UQ\x89\x81R\x91\x92\x8B\x16\x91\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%\x91\x01`@Q\x80\x91\x03\x90\xA3PPPPPPPPV[`\0a\ti\x80a\x07\xFDc\xFF\xFF\xFF\xFF\x82\x16V[\x92PPP\x90V[`\0\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F`\0`@Qa\x086\x91\x90a\r\x98V[`@Q\x80\x91\x03\x90 \x7F\xC8\x9E\xFD\xAAT\xC0\xF2\x0Cz\xDFa(\x82\xDF\tP\xF5\xA9Qc~\x03\x07\xCD\xCBLg/)\x8B\x8B\xC6a\x08ga\x07\xEBV[`@\x80Q` \x81\x01\x95\x90\x95R\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[`\0\x81\x83\x10\x15a\x08\xF9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC20: subtraction underflow\0\0\0\0`D\x82\x01R`d\x01a\x03TV[a\t\x03\x82\x84a\x0E\x0EV[\x93\x92PPPV[`\0\x80a\t\x17\x83\x85a\x0E!V[\x90P\x83\x81\x10\x15a\t\x03W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FERC20: addition overflow\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x03TV[F\x90V[`\0` \x80\x83R\x83Q\x80` \x85\x01R`\0[\x81\x81\x10\x15a\t\x9BW\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\t\x7FV[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\t\xD3W`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\t\xEBW`\0\x80\xFD[a\t\xF4\x83a\t\xBCV[\x94` \x93\x90\x93\x015\x93PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x82`\x1F\x83\x01\x12a\n)W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\nDWa\nDa\n\x02V[`@Q`\x1F\x83\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\nlWa\nla\n\x02V[\x81`@R\x83\x81R\x86` \x85\x88\x01\x01\x11\x15a\n\x85W`\0\x80\xFD[\x83` \x87\x01` \x83\x017`\0` \x85\x83\x01\x01R\x80\x94PPPPP\x92\x91PPV[\x805`\xFF\x81\x16\x81\x14a\t\xD3W`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\xCBW`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\n\xE3W`\0\x80\xFD[a\n\xEF\x87\x83\x88\x01a\n\x18V[\x94P` \x86\x015\x91P\x80\x82\x11\x15a\x0B\x05W`\0\x80\xFD[Pa\x0B\x12\x86\x82\x87\x01a\n\x18V[\x92PPa\x0B!`@\x85\x01a\n\xA5V[\x90P\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\x0B?W`\0\x80\xFD[a\x0BH\x84a\t\xBCV[\x92Pa\x0BV` \x85\x01a\t\xBCV[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x0BxW`\0\x80\xFD[a\t\x03\x82a\t\xBCV[`\0\x80`\0\x80`\0\x80`\0`\xE0\x88\x8A\x03\x12\x15a\x0B\x9CW`\0\x80\xFD[a\x0B\xA5\x88a\t\xBCV[\x96Pa\x0B\xB3` \x89\x01a\t\xBCV[\x95P`@\x88\x015\x94P``\x88\x015\x93Pa\x0B\xCF`\x80\x89\x01a\n\xA5V[\x92P`\xA0\x88\x015\x91P`\xC0\x88\x015\x90P\x92\x95\x98\x91\x94\x97P\x92\x95PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xFEW`\0\x80\xFD[a\x0C\x07\x83a\t\xBCV[\x91Pa\x0C\x15` \x84\x01a\t\xBCV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0C2W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x0CRWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x0C\xA4W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x0C\x81WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0C\xA0W\x82\x81U`\x01\x01a\x0C\x8DV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0C\xC3Wa\x0C\xC3a\n\x02V[a\x0C\xD7\x81a\x0C\xD1\x84Ta\x0C\x1EV[\x84a\x0CXV[` \x80`\x1F\x83\x11`\x01\x81\x14a\r\x0CW`\0\x84\x15a\x0C\xF4WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0C\xA0V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\r;W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\r\x1CV[P\x85\x82\x10\x15a\rYW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\r\x91Wa\r\x91a\riV[P`\x01\x01\x90V[`\0\x80\x83Ta\r\xA6\x81a\x0C\x1EV[`\x01\x82\x81\x16\x80\x15a\r\xBEW`\x01\x81\x14a\r\xD3Wa\x0E\x02V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa\x0E\x02V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a\r\xF9W\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a\r\xE0V[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[\x81\x81\x03\x81\x81\x11\x15a\x03\tWa\x03\ta\riV[\x80\x82\x01\x80\x82\x11\x15a\x03\tWa\x03\ta\riV\xFE\xA2dipfsX\"\x12 ~\xCC:\x08\xB5\x03l\xB5d\x08\xBEJ\x0B\0\x92\\\x99D\xA8\xD8\x92\x19}?D\xDF5-\x9D\xCE\xCF\x80dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKERC20_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockERC20(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC20 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC20 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC20 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC20 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockERC20)) - .field(&self.address()) - .finish() - } - } - impl MockERC20 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKERC20_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC20_ABI.clone(), - MOCKERC20_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `DOMAIN_SEPARATOR` (0x3644e515) function - pub fn domain_separator(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([54, 68, 229, 21], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `allowance` (0xdd62ed3e) function - pub fn allowance( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([221, 98, 237, 62], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `decimals` (0x313ce567) function - pub fn decimals(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([49, 60, 229, 103], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x1624f6c6) function - pub fn initialize( - &self, - name: ::std::string::String, - symbol: ::std::string::String, - decimals: u8, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([22, 36, 246, 198], (name, symbol, decimals)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nonces` (0x7ecebe00) function - pub fn nonces( - &self, - p0: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([126, 206, 190, 0], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `permit` (0xd505accf) function - pub fn permit( - &self, - owner: ::ethers::core::types::Address, - spender: ::ethers::core::types::Address, - value: ::ethers::core::types::U256, - deadline: ::ethers::core::types::U256, - v: u8, - r: [u8; 32], - s: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash( - [213, 5, 172, 207], - (owner, spender, value, deadline, v, r, s), - ) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `totalSupply` (0x18160ddd) function - pub fn total_supply( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([24, 22, 13, 221], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transfer` (0xa9059cbb) function - pub fn transfer( - &self, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([169, 5, 156, 187], (to, amount)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - amount: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, amount)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MockERC20Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for MockERC20 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockERC20Events { - ApprovalFilter(ApprovalFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC20Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC20Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC20Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC20Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC20Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")] - pub struct DomainSeparatorCall; - ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "allowance", abi = "allowance(address,address)")] - pub struct AllowanceCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "decimals", abi = "decimals()")] - pub struct DecimalsCall; - ///Container type for all input parameters for the `initialize` function with signature `initialize(string,string,uint8)` and selector `0x1624f6c6` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "initialize", abi = "initialize(string,string,uint8)")] - pub struct InitializeCall { - pub name: ::std::string::String, - pub symbol: ::std::string::String, - pub decimals: u8, - } - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nonces", abi = "nonces(address)")] - pub struct NoncesCall(pub ::ethers::core::types::Address); - ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "permit", - abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)" - )] - pub struct PermitCall { - pub owner: ::ethers::core::types::Address, - pub spender: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub deadline: ::ethers::core::types::U256, - pub v: u8, - pub r: [u8; 32], - pub s: [u8; 32], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "totalSupply", abi = "totalSupply()")] - pub struct TotalSupplyCall; - ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transfer", abi = "transfer(address,uint256)")] - pub struct TransferCall { - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub amount: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockERC20Calls { - DomainSeparator(DomainSeparatorCall), - Allowance(AllowanceCall), - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - Decimals(DecimalsCall), - Initialize(InitializeCall), - Name(NameCall), - Nonces(NoncesCall), - Permit(PermitCall), - Symbol(SymbolCall), - TotalSupply(TotalSupplyCall), - Transfer(TransferCall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC20Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::DomainSeparator(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Allowance(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Decimals(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Nonces(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Permit(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TotalSupply(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Transfer(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC20Calls { - fn encode(self) -> Vec { - match self { - Self::DomainSeparator(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Allowance(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Decimals(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialize(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Nonces(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Permit(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TotalSupply(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Transfer(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockERC20Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f), - Self::Allowance(element) => ::core::fmt::Display::fmt(element, f), - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::Decimals(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::Nonces(element) => ::core::fmt::Display::fmt(element, f), - Self::Permit(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f), - Self::Transfer(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DomainSeparatorCall) -> Self { - Self::DomainSeparator(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: AllowanceCall) -> Self { - Self::Allowance(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: DecimalsCall) -> Self { - Self::Decimals(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: NoncesCall) -> Self { - Self::Nonces(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: PermitCall) -> Self { - Self::Permit(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TotalSupplyCall) -> Self { - Self::TotalSupply(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferCall) -> Self { - Self::Transfer(value) - } - } - impl ::core::convert::From for MockERC20Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DomainSeparatorReturn(pub [u8; 32]); - ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct AllowanceReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ApproveReturn(pub bool); - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DecimalsReturn(pub u8); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NoncesReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TotalSupplyReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferReturn(pub bool); - ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TransferFromReturn(pub bool); -} diff --git a/xmtp_id/src/bindings/mock_erc721.rs b/xmtp_id/src/bindings/mock_erc721.rs deleted file mode 100644 index 1a754d17d..000000000 --- a/xmtp_id/src/bindings/mock_erc721.rs +++ /dev/null @@ -1,1389 +0,0 @@ -pub use mock_erc721::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_erc721 { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("approve"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("approve"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("balanceOf"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("balanceOf"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("getApproved"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getApproved"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("initialize"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("initialize"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_name"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("_symbol"), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isApprovedForAll"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isApprovedForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("name"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("name"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerOf"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerOf"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: - ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: - ::ethers::core::abi::ethabi::StateMutability::NonPayable, - }, - ], - ), - ( - ::std::borrow::ToOwned::to_owned("setApprovalForAll"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setApprovalForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("operator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("approved"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("supportsInterface"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("supportsInterface"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("interfaceId"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes4"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("symbol"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("symbol"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("tokenURI"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("tokenURI"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::String, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("string"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("transferFrom"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("transferFrom"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("Approval"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Approval"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("spender"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ApprovalForAll"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("ApprovalForAll"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("operator"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("approved"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Transfer"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Transfer"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("from"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("to"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("id"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ], - anonymous: false, - },], - ), - ]), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKERC721_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x0E\xF3\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xEAW`\x005`\xE0\x1C\x80ccR!\x1E\x11a\0\x8CW\x80c\xA2,\xB4e\x11a\0fW\x80c\xA2,\xB4e\x14a\x01\xF7W\x80c\xB8\x8DO\xDE\x14a\x02\nW\x80c\xC8{V\xDD\x14a\x02\x1DW\x80c\xE9\x85\xE9\xC5\x14a\x021W`\0\x80\xFD[\x80ccR!\x1E\x14a\x01\xBBW\x80cp\xA0\x821\x14a\x01\xCEW\x80c\x95\xD8\x9BA\x14a\x01\xEFW`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\0\xC8W\x80c\t^\xA7\xB3\x14a\x01mW\x80c#\xB8r\xDD\x14a\x01\x82W\x80cB\x84.\x0E\x14a\x01\x95W\x80cL\xD8\x8Bv\x14a\x01\xA8W`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\0\xEFW\x80c\x06\xFD\xDE\x03\x14a\x01\x17W\x80c\x08\x18\x12\xFC\x14a\x01,W[`\0\x80\xFD[a\x01\x02a\0\xFD6`\x04a\t\xAAV[a\x02_V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x1Fa\x02\xB1V[`@Qa\x01\x0E\x91\x90a\n\x14V[a\x01Ua\x01:6`\x04a\n'V[`\x04` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x0EV[a\x01\x80a\x01{6`\x04a\nWV[a\x03?V[\0[a\x01\x80a\x01\x906`\x04a\n\x81V[a\x04&V[a\x01\x80a\x01\xA36`\x04a\n\x81V[a\x06\x1FV[a\x01\x80a\x01\xB66`\x04a\x0BiV[a\x07\x0EV[a\x01Ua\x01\xC96`\x04a\n'V[a\x07\x82V[a\x01\xE1a\x01\xDC6`\x04a\x0B\xCDV[a\x07\xD9V[`@Q\x90\x81R` \x01a\x01\x0EV[a\x01\x1Fa\x08=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xBE\x91\x90a\rSV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14[a\x07\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x01a\x03\xC1V[PPPV[`\x06T`\xFF\x16\x15a\x07WW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R`d\x01a\x03\xC1V[`\0a\x07c\x83\x82a\r\xC0V[P`\x01a\x07p\x82\x82a\r\xC0V[PP`\x06\x80T`\xFF\x19\x16`\x01\x17\x90UPV[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x07\xD4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\n`$\x82\x01Ri\x13\x93\xD5\x17\xD3RS\x95\x11Q`\xB2\x1B`D\x82\x01R`d\x01a\x03\xC1V[\x91\x90PV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\x08 W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkZERO_ADDRESS`\xA0\x1B`D\x82\x01R`d\x01a\x03\xC1V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\x01\x80Ta\x02\xBE\x90a\x0C\xD3V[3`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x90\x83R\x92\x81\x90 \x80T`\xFF\x19\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x90Q\x90\x81R\x91\x92\x91\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPV[a\x08\xC0\x84\x84\x84a\x04&V[\x82;\x15\x80a\tLWP`@Qc\n\x85\xBD\x01`\xE1\x1B\x80\x82R\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x08\xFD\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a\x0E\x80V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\t\x1CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t@\x91\x90a\rSV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14[a\t\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x01a\x03\xC1V[PPPPV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\t\xA7W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\t\xBCW`\0\x80\xFD[\x815a\t\xC7\x81a\t\x91V[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\t\xF4W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\t\xD8V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R`\0a\t\xC7` \x83\x01\x84a\t\xCEV[`\0` \x82\x84\x03\x12\x15a\n9W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x07\xD4W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\njW`\0\x80\xFD[a\ns\x83a\n@V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x96W`\0\x80\xFD[a\n\x9F\x84a\n@V[\x92Pa\n\xAD` \x85\x01a\n@V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\n\xEEWa\n\xEEa\n\xBDV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0B\x16Wa\x0B\x16a\n\xBDV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x0B/W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a\x0BZW`\0\x80\xFD[a\t\xC7\x83\x835` \x85\x01a\n\xD3V[`\0\x80`@\x83\x85\x03\x12\x15a\x0B|W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\x94W`\0\x80\xFD[a\x0B\xA0\x86\x83\x87\x01a\x0BIV[\x93P` \x85\x015\x91P\x80\x82\x11\x15a\x0B\xB6W`\0\x80\xFD[Pa\x0B\xC3\x85\x82\x86\x01a\x0BIV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0B\xDFW`\0\x80\xFD[a\t\xC7\x82a\n@V[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xFBW`\0\x80\xFD[a\x0C\x04\x83a\n@V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x0C\x19W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x0C:W`\0\x80\xFD[a\x0CC\x85a\n@V[\x93Pa\x0CQ` \x86\x01a\n@V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0CtW`\0\x80\xFD[\x85\x01`\x1F\x81\x01\x87\x13a\x0C\x85W`\0\x80\xFD[a\x0C\x94\x87\x825` \x84\x01a\n\xD3V[\x91PP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\xB3W`\0\x80\xFD[a\x0C\xBC\x83a\n@V[\x91Pa\x0C\xCA` \x84\x01a\n@V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0C\xE7W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\r\x07WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81a\r2Wa\r2a\r\rV[P`\0\x19\x01\x90V[`\0`\x01\x82\x01a\rLWa\rLa\r\rV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a\reW`\0\x80\xFD[\x81Qa\t\xC7\x81a\t\x91V[`\x1F\x82\x11\x15a\x07\tW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\r\x99WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\r\xB8W\x82\x81U`\x01\x01a\r\xA5V[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\r\xDAWa\r\xDAa\n\xBDV[a\r\xEE\x81a\r\xE8\x84Ta\x0C\xD3V[\x84a\rpV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0E#W`\0\x84\x15a\x0E\x0BWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\r\xB8V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x0ERW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0E3V[P\x85\x82\x10\x15a\x0EpW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R`@\x81\x01\x83\x90R`\x80``\x82\x01\x81\x90R`\0\x90a\x0E\xB3\x90\x83\x01\x84a\t\xCEV[\x96\x95PPPPPPV\xFE\xA2dipfsX\"\x12 \x88\xC4\xB3~?\t\x01\x0E\x84B\x8E\xD5\x8B\xCA\x98\x02\xC6\xF9\xC1&\x18\xE7\xEF\x82\xB9E0\xACj}h\x1AdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MOCKERC721_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\xEAW`\x005`\xE0\x1C\x80ccR!\x1E\x11a\0\x8CW\x80c\xA2,\xB4e\x11a\0fW\x80c\xA2,\xB4e\x14a\x01\xF7W\x80c\xB8\x8DO\xDE\x14a\x02\nW\x80c\xC8{V\xDD\x14a\x02\x1DW\x80c\xE9\x85\xE9\xC5\x14a\x021W`\0\x80\xFD[\x80ccR!\x1E\x14a\x01\xBBW\x80cp\xA0\x821\x14a\x01\xCEW\x80c\x95\xD8\x9BA\x14a\x01\xEFW`\0\x80\xFD[\x80c\t^\xA7\xB3\x11a\0\xC8W\x80c\t^\xA7\xB3\x14a\x01mW\x80c#\xB8r\xDD\x14a\x01\x82W\x80cB\x84.\x0E\x14a\x01\x95W\x80cL\xD8\x8Bv\x14a\x01\xA8W`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\0\xEFW\x80c\x06\xFD\xDE\x03\x14a\x01\x17W\x80c\x08\x18\x12\xFC\x14a\x01,W[`\0\x80\xFD[a\x01\x02a\0\xFD6`\x04a\t\xAAV[a\x02_V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01\x1Fa\x02\xB1V[`@Qa\x01\x0E\x91\x90a\n\x14V[a\x01Ua\x01:6`\x04a\n'V[`\x04` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\x0EV[a\x01\x80a\x01{6`\x04a\nWV[a\x03?V[\0[a\x01\x80a\x01\x906`\x04a\n\x81V[a\x04&V[a\x01\x80a\x01\xA36`\x04a\n\x81V[a\x06\x1FV[a\x01\x80a\x01\xB66`\x04a\x0BiV[a\x07\x0EV[a\x01Ua\x01\xC96`\x04a\n'V[a\x07\x82V[a\x01\xE1a\x01\xDC6`\x04a\x0B\xCDV[a\x07\xD9V[`@Q\x90\x81R` \x01a\x01\x0EV[a\x01\x1Fa\x08=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xBE\x91\x90a\rSV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14[a\x07\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x01a\x03\xC1V[PPPV[`\x06T`\xFF\x16\x15a\x07WW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x13`$\x82\x01Rr\x10S\x14\x91PQ\x16W\xD2S\x92U\x12PS\x12V\x91Q`j\x1B`D\x82\x01R`d\x01a\x03\xC1V[`\0a\x07c\x83\x82a\r\xC0V[P`\x01a\x07p\x82\x82a\r\xC0V[PP`\x06\x80T`\xFF\x19\x16`\x01\x17\x90UPV[`\0\x81\x81R`\x02` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x07\xD4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\n`$\x82\x01Ri\x13\x93\xD5\x17\xD3RS\x95\x11Q`\xB2\x1B`D\x82\x01R`d\x01a\x03\xC1V[\x91\x90PV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\x08 W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x0C`$\x82\x01RkZERO_ADDRESS`\xA0\x1B`D\x82\x01R`d\x01a\x03\xC1V[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x03` R`@\x90 T\x90V[`\x01\x80Ta\x02\xBE\x90a\x0C\xD3V[3`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x90\x83R\x92\x81\x90 \x80T`\xFF\x19\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x90Q\x90\x81R\x91\x92\x91\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPV[a\x08\xC0\x84\x84\x84a\x04&V[\x82;\x15\x80a\tLWP`@Qc\n\x85\xBD\x01`\xE1\x1B\x80\x82R\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x08\xFD\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a\x0E\x80V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\t\x1CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t@\x91\x90a\rSV[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14[a\t\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x10`$\x82\x01Ro\x15S\x94\xD0Q\x91W\xD4\x91P\xD2T\x12QS\x95`\x82\x1B`D\x82\x01R`d\x01a\x03\xC1V[PPPPV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\t\xA7W`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a\t\xBCW`\0\x80\xFD[\x815a\t\xC7\x81a\t\x91V[\x93\x92PPPV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\t\xF4W` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\t\xD8V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R`\0a\t\xC7` \x83\x01\x84a\t\xCEV[`\0` \x82\x84\x03\x12\x15a\n9W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x07\xD4W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\njW`\0\x80\xFD[a\ns\x83a\n@V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a\n\x96W`\0\x80\xFD[a\n\x9F\x84a\n@V[\x92Pa\n\xAD` \x85\x01a\n@V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\n\xEEWa\n\xEEa\n\xBDV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a\x0B\x16Wa\x0B\x16a\n\xBDV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a\x0B/W`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a\x0BZW`\0\x80\xFD[a\t\xC7\x83\x835` \x85\x01a\n\xD3V[`\0\x80`@\x83\x85\x03\x12\x15a\x0B|W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\x94W`\0\x80\xFD[a\x0B\xA0\x86\x83\x87\x01a\x0BIV[\x93P` \x85\x015\x91P\x80\x82\x11\x15a\x0B\xB6W`\0\x80\xFD[Pa\x0B\xC3\x85\x82\x86\x01a\x0BIV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0B\xDFW`\0\x80\xFD[a\t\xC7\x82a\n@V[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\xFBW`\0\x80\xFD[a\x0C\x04\x83a\n@V[\x91P` \x83\x015\x80\x15\x15\x81\x14a\x0C\x19W`\0\x80\xFD[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a\x0C:W`\0\x80\xFD[a\x0CC\x85a\n@V[\x93Pa\x0CQ` \x86\x01a\n@V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0CtW`\0\x80\xFD[\x85\x01`\x1F\x81\x01\x87\x13a\x0C\x85W`\0\x80\xFD[a\x0C\x94\x87\x825` \x84\x01a\n\xD3V[\x91PP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0C\xB3W`\0\x80\xFD[a\x0C\xBC\x83a\n@V[\x91Pa\x0C\xCA` \x84\x01a\n@V[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x0C\xE7W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\r\x07WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0\x81a\r2Wa\r2a\r\rV[P`\0\x19\x01\x90V[`\0`\x01\x82\x01a\rLWa\rLa\r\rV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15a\reW`\0\x80\xFD[\x81Qa\t\xC7\x81a\t\x91V[`\x1F\x82\x11\x15a\x07\tW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\r\x99WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\r\xB8W\x82\x81U`\x01\x01a\r\xA5V[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\r\xDAWa\r\xDAa\n\xBDV[a\r\xEE\x81a\r\xE8\x84Ta\x0C\xD3V[\x84a\rpV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0E#W`\0\x84\x15a\x0E\x0BWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\r\xB8V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x0ERW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0E3V[P\x85\x82\x10\x15a\x0EpW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R`@\x81\x01\x83\x90R`\x80``\x82\x01\x81\x90R`\0\x90a\x0E\xB3\x90\x83\x01\x84a\t\xCEV[\x96\x95PPPPPPV\xFE\xA2dipfsX\"\x12 \x88\xC4\xB3~?\t\x01\x0E\x84B\x8E\xD5\x8B\xCA\x98\x02\xC6\xF9\xC1&\x18\xE7\xEF\x82\xB9E0\xACj}h\x1AdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKERC721_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockERC721(::ethers::contract::Contract); - impl ::core::clone::Clone for MockERC721 { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockERC721 { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockERC721 { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockERC721 { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockERC721)) - .field(&self.address()) - .finish() - } - } - impl MockERC721 { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKERC721_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKERC721_ABI.clone(), - MOCKERC721_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `approve` (0x095ea7b3) function - pub fn approve( - &self, - spender: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([9, 94, 167, 179], (spender, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `balanceOf` (0x70a08231) function - pub fn balance_of( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([112, 160, 130, 49], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `getApproved` (0x081812fc) function - pub fn get_approved( - &self, - p0: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([8, 24, 18, 252], p0) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `initialize` (0x4cd88b76) function - pub fn initialize( - &self, - name: ::std::string::String, - symbol: ::std::string::String, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([76, 216, 139, 118], (name, symbol)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function - pub fn is_approved_for_all( - &self, - p0: ::ethers::core::types::Address, - p1: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([233, 133, 233, 197], (p0, p1)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `name` (0x06fdde03) function - pub fn name(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 253, 222, 3], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerOf` (0x6352211e) function - pub fn owner_of( - &self, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([99, 82, 33, 30], id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0x42842e0e) function - pub fn safe_transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([66, 132, 46, 14], (from, to, id)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function - pub fn safe_transfer_from_with_from_and_to_and_data( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([184, 141, 79, 222], (from, to, id, data)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setApprovalForAll` (0xa22cb465) function - pub fn set_approval_for_all( - &self, - operator: ::ethers::core::types::Address, - approved: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 44, 180, 101], (operator, approved)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `supportsInterface` (0x01ffc9a7) function - pub fn supports_interface( - &self, - interface_id: [u8; 4], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([1, 255, 201, 167], interface_id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `symbol` (0x95d89b41) function - pub fn symbol( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([149, 216, 155, 65], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `tokenURI` (0xc87b56dd) function - pub fn token_uri( - &self, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([200, 123, 86, 221], id) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `transferFrom` (0x23b872dd) function - pub fn transfer_from( - &self, - from: ::ethers::core::types::Address, - to: ::ethers::core::types::Address, - id: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([35, 184, 114, 221], (from, to, id)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Approval` event - pub fn approval_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalFilter> { - self.0.event() - } - ///Gets the contract's `ApprovalForAll` event - pub fn approval_for_all_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, ApprovalForAllFilter> - { - self.0.event() - } - ///Gets the contract's `Transfer` event - pub fn transfer_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, TransferFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MockERC721Events> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for MockERC721 { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")] - pub struct ApprovalFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub spender: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub id: ::ethers::core::types::U256, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")] - pub struct ApprovalForAllFilter { - #[ethevent(indexed)] - pub owner: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")] - pub struct TransferFilter { - #[ethevent(indexed)] - pub from: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub to: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockERC721Events { - ApprovalFilter(ApprovalFilter), - ApprovalForAllFilter(ApprovalForAllFilter), - TransferFilter(TransferFilter), - } - impl ::ethers::contract::EthLogDecode for MockERC721Events { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = ApprovalFilter::decode_log(log) { - return Ok(MockERC721Events::ApprovalFilter(decoded)); - } - if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) { - return Ok(MockERC721Events::ApprovalForAllFilter(decoded)); - } - if let Ok(decoded) = TransferFilter::decode_log(log) { - return Ok(MockERC721Events::TransferFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockERC721Events { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::ApprovalForAllFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: ApprovalFilter) -> Self { - Self::ApprovalFilter(value) - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: ApprovalForAllFilter) -> Self { - Self::ApprovalForAllFilter(value) - } - } - impl ::core::convert::From for MockERC721Events { - fn from(value: TransferFilter) -> Self { - Self::TransferFilter(value) - } - } - ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "approve", abi = "approve(address,uint256)")] - pub struct ApproveCall { - pub spender: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "balanceOf", abi = "balanceOf(address)")] - pub struct BalanceOfCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getApproved", abi = "getApproved(uint256)")] - pub struct GetApprovedCall(pub ::ethers::core::types::U256); - ///Container type for all input parameters for the `initialize` function with signature `initialize(string,string)` and selector `0x4cd88b76` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "initialize", abi = "initialize(string,string)")] - pub struct InitializeCall { - pub name: ::std::string::String, - pub symbol: ::std::string::String, - } - ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")] - pub struct IsApprovedForAllCall( - pub ::ethers::core::types::Address, - pub ::ethers::core::types::Address, - ); - ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "name", abi = "name()")] - pub struct NameCall; - ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")] - pub struct OwnerOfCall { - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256)" - )] - pub struct SafeTransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "safeTransferFrom", - abi = "safeTransferFrom(address,address,uint256,bytes)" - )] - pub struct SafeTransferFromWithFromAndToAndDataCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")] - pub struct SetApprovalForAllCall { - pub operator: ::ethers::core::types::Address, - pub approved: bool, - } - ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")] - pub struct SupportsInterfaceCall { - pub interface_id: [u8; 4], - } - ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "symbol", abi = "symbol()")] - pub struct SymbolCall; - ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")] - pub struct TokenURICall { - pub id: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")] - pub struct TransferFromCall { - pub from: ::ethers::core::types::Address, - pub to: ::ethers::core::types::Address, - pub id: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockERC721Calls { - Approve(ApproveCall), - BalanceOf(BalanceOfCall), - GetApproved(GetApprovedCall), - Initialize(InitializeCall), - IsApprovedForAll(IsApprovedForAllCall), - Name(NameCall), - OwnerOf(OwnerOfCall), - SafeTransferFrom(SafeTransferFromCall), - SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall), - SetApprovalForAll(SetApprovalForAllCall), - SupportsInterface(SupportsInterfaceCall), - Symbol(SymbolCall), - TokenURI(TokenURICall), - TransferFrom(TransferFromCall), - } - impl ::ethers::core::abi::AbiDecode for MockERC721Calls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Approve(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::BalanceOf(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::GetApproved(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Initialize(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsApprovedForAll(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Name(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::OwnerOf(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SafeTransferFrom(decoded)); - } - if let Ok(decoded) = - ::decode( - data, - ) - { - return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SetApprovalForAll(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::SupportsInterface(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Symbol(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::TokenURI(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::TransferFrom(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockERC721Calls { - fn encode(self) -> Vec { - match self { - Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::BalanceOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::GetApproved(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Initialize(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsApprovedForAll(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetApprovalForAll(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::SupportsInterface(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TokenURI(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::TransferFrom(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockERC721Calls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::Approve(element) => ::core::fmt::Display::fmt(element, f), - Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f), - Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f), - Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), - Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::Name(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f), - Self::SafeTransferFromWithFromAndToAndData(element) => { - ::core::fmt::Display::fmt(element, f) - } - Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f), - Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f), - Self::Symbol(element) => ::core::fmt::Display::fmt(element, f), - Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f), - Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: ApproveCall) -> Self { - Self::Approve(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: BalanceOfCall) -> Self { - Self::BalanceOf(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: GetApprovedCall) -> Self { - Self::GetApproved(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: InitializeCall) -> Self { - Self::Initialize(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: IsApprovedForAllCall) -> Self { - Self::IsApprovedForAll(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: NameCall) -> Self { - Self::Name(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: OwnerOfCall) -> Self { - Self::OwnerOf(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SafeTransferFromCall) -> Self { - Self::SafeTransferFrom(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self { - Self::SafeTransferFromWithFromAndToAndData(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SetApprovalForAllCall) -> Self { - Self::SetApprovalForAll(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SupportsInterfaceCall) -> Self { - Self::SupportsInterface(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: SymbolCall) -> Self { - Self::Symbol(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: TokenURICall) -> Self { - Self::TokenURI(value) - } - } - impl ::core::convert::From for MockERC721Calls { - fn from(value: TransferFromCall) -> Self { - Self::TransferFrom(value) - } - } - ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct BalanceOfReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetApprovedReturn(pub ::ethers::core::types::Address); - ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsApprovedForAllReturn(pub bool); - ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NameReturn(pub ::std::string::String); - ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OwnerOfReturn { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SupportsInterfaceReturn(pub bool); - ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SymbolReturn(pub ::std::string::String); - ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct TokenURIReturn(pub ::std::string::String); -} diff --git a/xmtp_id/src/bindings/mock_multi_ownable.rs b/xmtp_id/src/bindings/mock_multi_ownable.rs deleted file mode 100644 index 2e8c40f6a..000000000 --- a/xmtp_id/src/bindings/mock_multi_ownable.rs +++ /dev/null @@ -1,1191 +0,0 @@ -pub use mock_multi_ownable::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_multi_ownable { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("init"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("init"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owners"), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Bytes, - ), - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes[]"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AddOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("AddOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("RemoveOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("RemoveOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Unauthorized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Unauthorized"), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKMULTIOWNABLE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x0C\"\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x93W`\x005`\xE0\x1C\x80cE\x9F\xB2\xAD\x11a\0fW\x80cE\x9F\xB2\xAD\x14a\0\xFBW\x80cr\xDE;Z\x14a\x01\x0EW\x80c\x8E\xA6\x90)\x14a\x01!W\x80c\xA2\xE1\xA8\xD8\x14a\x01AW\x80c\xD9H\xFD.\x14a\x01TW`\0\x80\xFD[\x80c\x06j\x1E\xB7\x14a\0\x98W\x80c\x0F\x0F?$\x14a\0\xC0W\x80c\x1C\xA59?\x14a\0\xD5W\x80c)V^;\x14a\0\xE8W[`\0\x80\xFD[a\0\xABa\0\xA66`\x04a\x07SV[a\x01rV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xD3a\0\xCE6`\x04a\x07uV[a\x01\xE0V[\0[a\0\xABa\0\xE36`\x04a\x08\\V[a\x02\x18V[a\0\xD3a\0\xF66`\x04a\x07SV[a\x02SV[a\0\xD3a\x01\t6`\x04a\x08\x99V[a\x02|V[a\0\xD3a\x01\x1C6`\x04a\t\x0EV[a\x02\x8EV[a\x014a\x01/6`\x04a\t\x0EV[a\x03\x80V[`@Qa\0\xB7\x91\x90a\tKV[a\0\xABa\x01O6`\x04a\x07uV[a\x04AV[`\0\x80Q` a\x0B\xCD\x839\x81Q\x91RT`@Q\x90\x81R` \x01a\0\xB7V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01\xC5\x91a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P\x92\x91PPV[a\x01\xE8a\x04\x87V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x02\x15\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x04\xB9V[PV[`\0`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`\x02\x01\x82`@Qa\x02:\x91\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x02[a\x04\x87V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x02x\x90``\x01a\x02\x01V[PPV[a\x02xa\x02\x89\x82\x84a\t\x9AV[a\x04\xE4V[a\x02\x96a\x04\x87V[`\0a\x02\xA1\x82a\x03\x80V[\x90P\x80Q`\0\x03a\x02\xCDW`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\x02\xFD\x90\x83\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\x03)`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x03D\x91a\x07\x05V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x03t\x91\x90a\tKV[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x03\xBC\x90a\n V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xE8\x90a\n V[\x80\x15a\x045W\x80`\x1F\x10a\x04\nWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x045V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\x18W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02:\x91a\t~V[a\x04\x903a\x04AV[\x80a\x04\x9AWP30\x14[\x15a\x04\xA1WV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x15\x81`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R[\x80T\x90`\0a\x04\xDB\x83a\nZV[\x91\x90PUa\x066V[`\0[\x81Q\x81\x10\x15a\x02xW\x81\x81\x81Q\x81\x10a\x05\x02Wa\x05\x02a\n\x81V[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x056WP\x81\x81\x81Q\x81\x10a\x05(Wa\x05(a\n\x81V[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x05oW\x81\x81\x81Q\x81\x10a\x05MWa\x05Ma\n\x81V[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[\x81\x81\x81Q\x81\x10a\x05\x81Wa\x05\x81a\n\x81V[` \x02` \x01\x01QQ` \x14\x80\x15a\x05\xC3WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x05\xB0Wa\x05\xB0a\n\x81V[` \x02` \x01\x01Qa\x05\xC1\x90a\n\x97V[\x11[\x15a\x05\xFCW\x81\x81\x81Q\x81\x10a\x05\xDAWa\x05\xDAa\n\x81V[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[a\x06.\x82\x82\x81Q\x81\x10a\x06\x11Wa\x06\x11a\n\x81V[` \x02` \x01\x01Qa\x04\xCD`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\x01\x01a\x04\xE7V[a\x06?\x82a\x02\x18V[\x15a\x06_W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[`\x01`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`\x02\x01\x83`@Qa\x06\x81\x91\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x06\xB7`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x06\xD4\x90\x82a\x0B\x0CV[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x03t\x91\x90a\tKV[P\x80Ta\x07\x11\x90a\n V[`\0\x82U\x80`\x1F\x10a\x07!WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x02\x15\x91\x90[\x80\x82\x11\x15a\x07OW`\0\x81U`\x01\x01a\x07;V[P\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x07fW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\x07\x87W`\0\x80\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x07\x9EW`\0\x80\xFD[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07\xE4Wa\x07\xE4a\x07\xA5V[`@R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a\x07\xFDW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x17Wa\x08\x17a\x07\xA5V[a\x08*`\x1F\x82\x01`\x1F\x19\x16` \x01a\x07\xBBV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x08?W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x08nW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x85W`\0\x80\xFD[a\x08\x91\x84\x82\x85\x01a\x07\xECV[\x94\x93PPPPV[`\0\x80` \x83\x85\x03\x12\x15a\x08\xACW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\xC4W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x08\xD8W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08\xE7W`\0\x80\xFD[\x86` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x08\xFCW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\t W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\tBW\x81\x81\x01Q\x83\x82\x01R` \x01a\t*V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra\tj\x81`@\x85\x01` \x87\x01a\t'V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\t\x90\x81\x84` \x87\x01a\t'V[\x91\x90\x91\x01\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\t\xB5Wa\t\xB5a\x07\xA5V[\x83`\x05\x1B` a\t\xC7` \x83\x01a\x07\xBBV[\x86\x81R\x91\x85\x01\x91` \x81\x01\x906\x84\x11\x15a\t\xE0W`\0\x80\xFD[\x86[\x84\x81\x10\x15a\n\x14W\x805\x86\x81\x11\x15a\t\xFAW`\0\x80\x81\xFD[a\n\x066\x82\x8B\x01a\x07\xECV[\x84RP\x91\x83\x01\x91\x83\x01a\t\xE2V[P\x97\x96PPPPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\n4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\nTWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`\x01\x82\x01a\nzWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\nTW`\0\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`\x1F\x82\x11\x15a\x0B\x07W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\n\xE4WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0B\x03W\x82\x81U`\x01\x01a\n\xF0V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0B&Wa\x0B&a\x07\xA5V[a\x0B:\x81a\x0B4\x84Ta\n V[\x84a\n\xBBV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0BoW`\0\x84\x15a\x0BWWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0B\x03V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x0B\x9EW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0B\x7FV[P\x85\x82\x10\x15a\x0B\xBCW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\0\xA2dipfsX\"\x12 \x8E\xA9\x13\xCA\x12^o\xAD\xA8s\xC1\xD3Y\xFF!\xEA\x04\xB3\x89\x18'\xEC\xCF\x1F\xBA\xEC\xFCL\xA7Gl?dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MOCKMULTIOWNABLE_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x93W`\x005`\xE0\x1C\x80cE\x9F\xB2\xAD\x11a\0fW\x80cE\x9F\xB2\xAD\x14a\0\xFBW\x80cr\xDE;Z\x14a\x01\x0EW\x80c\x8E\xA6\x90)\x14a\x01!W\x80c\xA2\xE1\xA8\xD8\x14a\x01AW\x80c\xD9H\xFD.\x14a\x01TW`\0\x80\xFD[\x80c\x06j\x1E\xB7\x14a\0\x98W\x80c\x0F\x0F?$\x14a\0\xC0W\x80c\x1C\xA59?\x14a\0\xD5W\x80c)V^;\x14a\0\xE8W[`\0\x80\xFD[a\0\xABa\0\xA66`\x04a\x07SV[a\x01rV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xD3a\0\xCE6`\x04a\x07uV[a\x01\xE0V[\0[a\0\xABa\0\xE36`\x04a\x08\\V[a\x02\x18V[a\0\xD3a\0\xF66`\x04a\x07SV[a\x02SV[a\0\xD3a\x01\t6`\x04a\x08\x99V[a\x02|V[a\0\xD3a\x01\x1C6`\x04a\t\x0EV[a\x02\x8EV[a\x014a\x01/6`\x04a\t\x0EV[a\x03\x80V[`@Qa\0\xB7\x91\x90a\tKV[a\0\xABa\x01O6`\x04a\x07uV[a\x04AV[`\0\x80Q` a\x0B\xCD\x839\x81Q\x91RT`@Q\x90\x81R` \x01a\0\xB7V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01\xC5\x91a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P\x92\x91PPV[a\x01\xE8a\x04\x87V[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x02\x15\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x04\xB9V[PV[`\0`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`\x02\x01\x82`@Qa\x02:\x91\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x02[a\x04\x87V[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x02x\x90``\x01a\x02\x01V[PPV[a\x02xa\x02\x89\x82\x84a\t\x9AV[a\x04\xE4V[a\x02\x96a\x04\x87V[`\0a\x02\xA1\x82a\x03\x80V[\x90P\x80Q`\0\x03a\x02\xCDW`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\x02\xFD\x90\x83\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\x03)`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x03D\x91a\x07\x05V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x03t\x91\x90a\tKV[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x03\xBC\x90a\n V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xE8\x90a\n V[\x80\x15a\x045W\x80`\x1F\x10a\x04\nWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x045V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x04\x18W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02:\x91a\t~V[a\x04\x903a\x04AV[\x80a\x04\x9AWP30\x14[\x15a\x04\xA1WV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x02\x15\x81`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R[\x80T\x90`\0a\x04\xDB\x83a\nZV[\x91\x90PUa\x066V[`\0[\x81Q\x81\x10\x15a\x02xW\x81\x81\x81Q\x81\x10a\x05\x02Wa\x05\x02a\n\x81V[` \x02` \x01\x01QQ` \x14\x15\x80\x15a\x056WP\x81\x81\x81Q\x81\x10a\x05(Wa\x05(a\n\x81V[` \x02` \x01\x01QQ`@\x14\x15[\x15a\x05oW\x81\x81\x81Q\x81\x10a\x05MWa\x05Ma\n\x81V[` \x02` \x01\x01Q`@Qc'u[\x91`\xE1\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[\x81\x81\x81Q\x81\x10a\x05\x81Wa\x05\x81a\n\x81V[` \x02` \x01\x01QQ` \x14\x80\x15a\x05\xC3WP`\x01`\x01`\xA0\x1B\x03\x80\x16\x82\x82\x81Q\x81\x10a\x05\xB0Wa\x05\xB0a\n\x81V[` \x02` \x01\x01Qa\x05\xC1\x90a\n\x97V[\x11[\x15a\x05\xFCW\x81\x81\x81Q\x81\x10a\x05\xDAWa\x05\xDAa\n\x81V[` \x02` \x01\x01Q`@Qc\xBF\xF1\xACe`\xE0\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[a\x06.\x82\x82\x81Q\x81\x10a\x06\x11Wa\x06\x11a\n\x81V[` \x02` \x01\x01Qa\x04\xCD`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\x01\x01a\x04\xE7V[a\x06?\x82a\x02\x18V[\x15a\x06_W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x02\xC4\x91\x90a\tKV[`\x01`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R`\x02\x01\x83`@Qa\x06\x81\x91\x90a\t~V[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x06\xB7`\0\x80Q` a\x0B\xCD\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x06\xD4\x90\x82a\x0B\x0CV[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x03t\x91\x90a\tKV[P\x80Ta\x07\x11\x90a\n V[`\0\x82U\x80`\x1F\x10a\x07!WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x02\x15\x91\x90[\x80\x82\x11\x15a\x07OW`\0\x81U`\x01\x01a\x07;V[P\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x07fW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\x07\x87W`\0\x80\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x07\x9EW`\0\x80\xFD[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x07\xE4Wa\x07\xE4a\x07\xA5V[`@R\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a\x07\xFDW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x17Wa\x08\x17a\x07\xA5V[a\x08*`\x1F\x82\x01`\x1F\x19\x16` \x01a\x07\xBBV[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a\x08?W`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x08nW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08\x85W`\0\x80\xFD[a\x08\x91\x84\x82\x85\x01a\x07\xECV[\x94\x93PPPPV[`\0\x80` \x83\x85\x03\x12\x15a\x08\xACW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x08\xC4W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x08\xD8W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x08\xE7W`\0\x80\xFD[\x86` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x08\xFCW`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\t W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\tBW\x81\x81\x01Q\x83\x82\x01R` \x01a\t*V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra\tj\x81`@\x85\x01` \x87\x01a\t'V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\t\x90\x81\x84` \x87\x01a\t'V[\x91\x90\x91\x01\x92\x91PPV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a\t\xB5Wa\t\xB5a\x07\xA5V[\x83`\x05\x1B` a\t\xC7` \x83\x01a\x07\xBBV[\x86\x81R\x91\x85\x01\x91` \x81\x01\x906\x84\x11\x15a\t\xE0W`\0\x80\xFD[\x86[\x84\x81\x10\x15a\n\x14W\x805\x86\x81\x11\x15a\t\xFAW`\0\x80\x81\xFD[a\n\x066\x82\x8B\x01a\x07\xECV[\x84RP\x91\x83\x01\x91\x83\x01a\t\xE2V[P\x97\x96PPPPPPPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\n4W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\nTWcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`\x01\x82\x01a\nzWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\nTW`\0\x19` \x91\x90\x91\x03`\x03\x1B\x1B\x16\x91\x90PV[`\x1F\x82\x11\x15a\x0B\x07W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\n\xE4WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x0B\x03W\x82\x81U`\x01\x01a\n\xF0V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0B&Wa\x0B&a\x07\xA5V[a\x0B:\x81a\x0B4\x84Ta\n V[\x84a\n\xBBV[` \x80`\x1F\x83\x11`\x01\x81\x14a\x0BoW`\0\x84\x15a\x0BWWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x0B\x03V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x0B\x9EW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x0B\x7FV[P\x85\x82\x10\x15a\x0B\xBCW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\0\xA2dipfsX\"\x12 \x8E\xA9\x13\xCA\x12^o\xAD\xA8s\xC1\xD3Y\xFF!\xEA\x04\xB3\x89\x18'\xEC\xCF\x1F\xBA\xEC\xFCL\xA7Gl?dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKMULTIOWNABLE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockMultiOwnable(::ethers::contract::Contract); - impl ::core::clone::Clone for MockMultiOwnable { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockMultiOwnable { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockMultiOwnable { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockMultiOwnable { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockMultiOwnable)) - .field(&self.address()) - .finish() - } - } - impl MockMultiOwnable { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKMULTIOWNABLE_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKMULTIOWNABLE_ABI.clone(), - MOCKMULTIOWNABLE_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `addOwnerAddress` (0x0f0f3f24) function - pub fn add_owner_address( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([15, 15, 63, 36], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerPublicKey` (0x29565e3b) function - pub fn add_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([41, 86, 94, 59], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `init` (0x459fb2ad) function - pub fn init( - &self, - owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([69, 159, 178, 173], owners) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerAddress` (0xa2e1a8d8) function - pub fn is_owner_address( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 225, 168, 216], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerBytes` (0x1ca5393f) function - pub fn is_owner_bytes( - &self, - account: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([28, 165, 57, 63], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerPublicKey` (0x066a1eb7) function - pub fn is_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 106, 30, 183], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nextOwnerIndex` (0xd948fd2e) function - pub fn next_owner_index( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([217, 72, 253, 46], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerAtIndex` (0x8ea69029) function - pub fn owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([142, 166, 144, 41], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `removeOwnerAtIndex` (0x72de3b5a) function - pub fn remove_owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([114, 222, 59, 90], index) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `AddOwner` event - pub fn add_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AddOwnerFilter> { - self.0.event() - } - ///Gets the contract's `RemoveOwner` event - pub fn remove_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RemoveOwnerFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MockMultiOwnableEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for MockMultiOwnable - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AlreadyOwner` with signature `AlreadyOwner(bytes)` and selector `0x8d16255a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "AlreadyOwner", abi = "AlreadyOwner(bytes)")] - pub struct AlreadyOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidEthereumAddressOwner` with signature `InvalidEthereumAddressOwner(bytes)` and selector `0xbff1ac65` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidEthereumAddressOwner", - abi = "InvalidEthereumAddressOwner(bytes)" - )] - pub struct InvalidEthereumAddressOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidOwnerBytesLength` with signature `InvalidOwnerBytesLength(bytes)` and selector `0x4eeab722` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidOwnerBytesLength", - abi = "InvalidOwnerBytesLength(bytes)" - )] - pub struct InvalidOwnerBytesLength { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `NoOwnerAtIndex` with signature `NoOwnerAtIndex(uint256)` and selector `0x68188e7a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NoOwnerAtIndex", abi = "NoOwnerAtIndex(uint256)")] - pub struct NoOwnerAtIndex { - pub index: ::ethers::core::types::U256, - } - ///Custom Error type `Unauthorized` with signature `Unauthorized()` and selector `0x82b42900` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Unauthorized", abi = "Unauthorized()")] - pub struct Unauthorized; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockMultiOwnableErrors { - AlreadyOwner(AlreadyOwner), - InvalidEthereumAddressOwner(InvalidEthereumAddressOwner), - InvalidOwnerBytesLength(InvalidOwnerBytesLength), - NoOwnerAtIndex(NoOwnerAtIndex), - Unauthorized(Unauthorized), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for MockMultiOwnableErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AlreadyOwner(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidEthereumAddressOwner(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidOwnerBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NoOwnerAtIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Unauthorized(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockMultiOwnableErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AlreadyOwner(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidEthereumAddressOwner(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidOwnerBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NoOwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Unauthorized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for MockMultiOwnableErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector == ::selector() => true, - _ if selector - == ::selector( - ) => - { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for MockMultiOwnableErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AlreadyOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidEthereumAddressOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidOwnerBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::NoOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::Unauthorized(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for MockMultiOwnableErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for MockMultiOwnableErrors { - fn from(value: AlreadyOwner) -> Self { - Self::AlreadyOwner(value) - } - } - impl ::core::convert::From for MockMultiOwnableErrors { - fn from(value: InvalidEthereumAddressOwner) -> Self { - Self::InvalidEthereumAddressOwner(value) - } - } - impl ::core::convert::From for MockMultiOwnableErrors { - fn from(value: InvalidOwnerBytesLength) -> Self { - Self::InvalidOwnerBytesLength(value) - } - } - impl ::core::convert::From for MockMultiOwnableErrors { - fn from(value: NoOwnerAtIndex) -> Self { - Self::NoOwnerAtIndex(value) - } - } - impl ::core::convert::From for MockMultiOwnableErrors { - fn from(value: Unauthorized) -> Self { - Self::Unauthorized(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "AddOwner", abi = "AddOwner(uint256,bytes)")] - pub struct AddOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "RemoveOwner", abi = "RemoveOwner(uint256,bytes)")] - pub struct RemoveOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockMultiOwnableEvents { - AddOwnerFilter(AddOwnerFilter), - RemoveOwnerFilter(RemoveOwnerFilter), - } - impl ::ethers::contract::EthLogDecode for MockMultiOwnableEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AddOwnerFilter::decode_log(log) { - return Ok(MockMultiOwnableEvents::AddOwnerFilter(decoded)); - } - if let Ok(decoded) = RemoveOwnerFilter::decode_log(log) { - return Ok(MockMultiOwnableEvents::RemoveOwnerFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MockMultiOwnableEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockMultiOwnableEvents { - fn from(value: AddOwnerFilter) -> Self { - Self::AddOwnerFilter(value) - } - } - impl ::core::convert::From for MockMultiOwnableEvents { - fn from(value: RemoveOwnerFilter) -> Self { - Self::RemoveOwnerFilter(value) - } - } - ///Container type for all input parameters for the `addOwnerAddress` function with signature `addOwnerAddress(address)` and selector `0x0f0f3f24` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerAddress", abi = "addOwnerAddress(address)")] - pub struct AddOwnerAddressCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `addOwnerPublicKey` function with signature `addOwnerPublicKey(bytes32,bytes32)` and selector `0x29565e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerPublicKey", abi = "addOwnerPublicKey(bytes32,bytes32)")] - pub struct AddOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `init` function with signature `init(bytes[])` and selector `0x459fb2ad` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "init", abi = "init(bytes[])")] - pub struct InitCall { - pub owners: ::std::vec::Vec<::ethers::core::types::Bytes>, - } - ///Container type for all input parameters for the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerAddress", abi = "isOwnerAddress(address)")] - pub struct IsOwnerAddressCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerBytes", abi = "isOwnerBytes(bytes)")] - pub struct IsOwnerBytesCall { - pub account: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerPublicKey", abi = "isOwnerPublicKey(bytes32,bytes32)")] - pub struct IsOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nextOwnerIndex", abi = "nextOwnerIndex()")] - pub struct NextOwnerIndexCall; - ///Container type for all input parameters for the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "ownerAtIndex", abi = "ownerAtIndex(uint256)")] - pub struct OwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `removeOwnerAtIndex` function with signature `removeOwnerAtIndex(uint256)` and selector `0x72de3b5a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "removeOwnerAtIndex", abi = "removeOwnerAtIndex(uint256)")] - pub struct RemoveOwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockMultiOwnableCalls { - AddOwnerAddress(AddOwnerAddressCall), - AddOwnerPublicKey(AddOwnerPublicKeyCall), - Init(InitCall), - IsOwnerAddress(IsOwnerAddressCall), - IsOwnerBytes(IsOwnerBytesCall), - IsOwnerPublicKey(IsOwnerPublicKeyCall), - NextOwnerIndex(NextOwnerIndexCall), - OwnerAtIndex(OwnerAtIndexCall), - RemoveOwnerAtIndex(RemoveOwnerAtIndexCall), - } - impl ::ethers::core::abi::AbiDecode for MockMultiOwnableCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerAddress(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerPublicKey(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Init(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerAddress(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::IsOwnerBytes(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NextOwnerIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::OwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::RemoveOwnerAtIndex(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockMultiOwnableCalls { - fn encode(self) -> Vec { - match self { - Self::AddOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::AddOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Init(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerBytes(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NextOwnerIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RemoveOwnerAtIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MockMultiOwnableCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::Init(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerBytes(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::NextOwnerIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: AddOwnerAddressCall) -> Self { - Self::AddOwnerAddress(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: AddOwnerPublicKeyCall) -> Self { - Self::AddOwnerPublicKey(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: InitCall) -> Self { - Self::Init(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: IsOwnerAddressCall) -> Self { - Self::IsOwnerAddress(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: IsOwnerBytesCall) -> Self { - Self::IsOwnerBytes(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: IsOwnerPublicKeyCall) -> Self { - Self::IsOwnerPublicKey(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: NextOwnerIndexCall) -> Self { - Self::NextOwnerIndex(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: OwnerAtIndexCall) -> Self { - Self::OwnerAtIndex(value) - } - } - impl ::core::convert::From for MockMultiOwnableCalls { - fn from(value: RemoveOwnerAtIndexCall) -> Self { - Self::RemoveOwnerAtIndex(value) - } - } - ///Container type for all return fields from the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerAddressReturn(pub bool); - ///Container type for all return fields from the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerBytesReturn(pub bool); - ///Container type for all return fields from the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerPublicKeyReturn(pub bool); - ///Container type for all return fields from the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NextOwnerIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OwnerAtIndexReturn(pub ::ethers::core::types::Bytes); -} diff --git a/xmtp_id/src/bindings/mock_target.rs b/xmtp_id/src/bindings/mock_target.rs deleted file mode 100644 index cc7b07652..000000000 --- a/xmtp_id/src/bindings/mock_target.rs +++ /dev/null @@ -1,495 +0,0 @@ -pub use mock_target::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod mock_target { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("changeOwnerSlotValue"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("changeOwnerSlotValue",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("change"), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("data"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("data"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("datahash"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("datahash"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("revertWithTargetError"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("revertWithTargetError",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data_"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("setData"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("setData"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data_"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::std::collections::BTreeMap::new(), - errors: ::core::convert::From::from([( - ::std::borrow::ToOwned::to_owned("TargetError"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("TargetError"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - )]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MOCKTARGET_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x04y\x80a\0 `\09`\0\xF3\xFE`\x80`@R`\x046\x10a\0JW`\x005`\xE0\x1C\x80c\x0CO`Y\x14a\0OW\x80c'k\x86\xA9\x14a\0dW\x80ca\xA3\x0B.\x14a\0\x8DW\x80cs\xD4\xA1:\x14a\0\xA0W\x80c\xABb\xF0\xE1\x14a\0\xC2W[`\0\x80\xFD[a\0ba\0]6`\x04a\x01\xCFV[a\0\xD5V[\0[4\x80\x15a\0pW`\0\x80\xFD[Pa\0z`\0T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0ba\0\x9B6`\x04a\x02\x80V[a\0\xF9V[4\x80\x15a\0\xACW`\0\x80\xFD[Pa\0\xB5a\x01\x0EV[`@Qa\0\x84\x91\x90a\x02\xA9V[a\0\xB5a\0\xD06`\x04a\x01\xCFV[a\x01\x9CV[\x80`@Qc4>\xB9q`\xE1\x1B\x81R`\x04\x01a\0\xF0\x91\x90a\x02\xA9V[`@Q\x80\x91\x03\x90\xFD[\x80\x15a\x01\x0BWb\x11\"3c\x8Bx\xC6\xD8\x19U[PV[`\x01\x80Ta\x01\x1B\x90a\x02\xF8V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x01G\x90a\x02\xF8V[\x80\x15a\x01\x94W\x80`\x1F\x10a\x01iWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x01\x94V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x01wW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\x01a\x01\xAA\x83\x82a\x03\x83V[PP\x80Q` \x82\x01 `\0U\x90V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x01\xE1W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x01\xF9W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02\rW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x1FWa\x02\x1Fa\x01\xB9V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02GWa\x02Ga\x01\xB9V[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02`W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x02\x92W`\0\x80\xFD[\x815\x80\x15\x15\x81\x14a\x02\xA2W`\0\x80\xFD[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80` \x85\x01R`\0[\x81\x81\x10\x15a\x02\xD7W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xBBV[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x03\x0CW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x03,WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x03~W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x03[WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x03zW\x82\x81U`\x01\x01a\x03gV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03\x9DWa\x03\x9Da\x01\xB9V[a\x03\xB1\x81a\x03\xAB\x84Ta\x02\xF8V[\x84a\x032V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x03\xE6W`\0\x84\x15a\x03\xCEWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x03zV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x04\x15W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x03\xF6V[P\x85\x82\x10\x15a\x043W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE\xA2dipfsX\"\x12 G\x92L\xC3U\x8F^\xDF\x01\xB8\x0B\x8Ee\x08\xB6\x8B\xBB\xE6\x12p\xFE\x0F6~\x864\xAC\xEB\xF7\"e\xBEdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MOCKTARGET_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\0JW`\x005`\xE0\x1C\x80c\x0CO`Y\x14a\0OW\x80c'k\x86\xA9\x14a\0dW\x80ca\xA3\x0B.\x14a\0\x8DW\x80cs\xD4\xA1:\x14a\0\xA0W\x80c\xABb\xF0\xE1\x14a\0\xC2W[`\0\x80\xFD[a\0ba\0]6`\x04a\x01\xCFV[a\0\xD5V[\0[4\x80\x15a\0pW`\0\x80\xFD[Pa\0z`\0T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0ba\0\x9B6`\x04a\x02\x80V[a\0\xF9V[4\x80\x15a\0\xACW`\0\x80\xFD[Pa\0\xB5a\x01\x0EV[`@Qa\0\x84\x91\x90a\x02\xA9V[a\0\xB5a\0\xD06`\x04a\x01\xCFV[a\x01\x9CV[\x80`@Qc4>\xB9q`\xE1\x1B\x81R`\x04\x01a\0\xF0\x91\x90a\x02\xA9V[`@Q\x80\x91\x03\x90\xFD[\x80\x15a\x01\x0BWb\x11\"3c\x8Bx\xC6\xD8\x19U[PV[`\x01\x80Ta\x01\x1B\x90a\x02\xF8V[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x01G\x90a\x02\xF8V[\x80\x15a\x01\x94W\x80`\x1F\x10a\x01iWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x01\x94V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x01wW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x81V[```\x01a\x01\xAA\x83\x82a\x03\x83V[PP\x80Q` \x82\x01 `\0U\x90V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x01\xE1W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x01\xF9W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x02\rW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x02\x1FWa\x02\x1Fa\x01\xB9V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x02GWa\x02Ga\x01\xB9V[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x02`W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x02\x92W`\0\x80\xFD[\x815\x80\x15\x15\x81\x14a\x02\xA2W`\0\x80\xFD[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80` \x85\x01R`\0[\x81\x81\x10\x15a\x02\xD7W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\x02\xBBV[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x03\x0CW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x03,WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15a\x03~W`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x03[WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x03zW\x82\x81U`\x01\x01a\x03gV[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03\x9DWa\x03\x9Da\x01\xB9V[a\x03\xB1\x81a\x03\xAB\x84Ta\x02\xF8V[\x84a\x032V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x03\xE6W`\0\x84\x15a\x03\xCEWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x03zV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x04\x15W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x03\xF6V[P\x85\x82\x10\x15a\x043W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV\xFE\xA2dipfsX\"\x12 G\x92L\xC3U\x8F^\xDF\x01\xB8\x0B\x8Ee\x08\xB6\x8B\xBB\xE6\x12p\xFE\x0F6~\x864\xAC\xEB\xF7\"e\xBEdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MOCKTARGET_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MockTarget(::ethers::contract::Contract); - impl ::core::clone::Clone for MockTarget { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MockTarget { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MockTarget { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MockTarget { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MockTarget)) - .field(&self.address()) - .finish() - } - } - impl MockTarget { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MOCKTARGET_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MOCKTARGET_ABI.clone(), - MOCKTARGET_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `changeOwnerSlotValue` (0x61a30b2e) function - pub fn change_owner_slot_value( - &self, - change: bool, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([97, 163, 11, 46], change) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `data` (0x73d4a13a) function - pub fn data( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([115, 212, 161, 58], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `datahash` (0x276b86a9) function - pub fn datahash(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([39, 107, 134, 169], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `revertWithTargetError` (0x0c4f6059) function - pub fn revert_with_target_error( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([12, 79, 96, 89], data) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `setData` (0xab62f0e1) function - pub fn set_data( - &self, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([171, 98, 240, 225], data) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for MockTarget { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `TargetError` with signature `TargetError(bytes)` and selector `0x687d72e2` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "TargetError", abi = "TargetError(bytes)")] - pub struct TargetError { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `changeOwnerSlotValue` function with signature `changeOwnerSlotValue(bool)` and selector `0x61a30b2e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "changeOwnerSlotValue", abi = "changeOwnerSlotValue(bool)")] - pub struct ChangeOwnerSlotValueCall { - pub change: bool, - } - ///Container type for all input parameters for the `data` function with signature `data()` and selector `0x73d4a13a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "data", abi = "data()")] - pub struct DataCall; - ///Container type for all input parameters for the `datahash` function with signature `datahash()` and selector `0x276b86a9` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "datahash", abi = "datahash()")] - pub struct DatahashCall; - ///Container type for all input parameters for the `revertWithTargetError` function with signature `revertWithTargetError(bytes)` and selector `0x0c4f6059` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "revertWithTargetError", abi = "revertWithTargetError(bytes)")] - pub struct RevertWithTargetErrorCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `setData` function with signature `setData(bytes)` and selector `0xab62f0e1` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "setData", abi = "setData(bytes)")] - pub struct SetDataCall { - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MockTargetCalls { - ChangeOwnerSlotValue(ChangeOwnerSlotValueCall), - Data(DataCall), - Datahash(DatahashCall), - RevertWithTargetError(RevertWithTargetErrorCall), - SetData(SetDataCall), - } - impl ::ethers::core::abi::AbiDecode for MockTargetCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::ChangeOwnerSlotValue(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Data(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Datahash(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::RevertWithTargetError(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::SetData(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MockTargetCalls { - fn encode(self) -> Vec { - match self { - Self::ChangeOwnerSlotValue(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::Data(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Datahash(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertWithTargetError(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::SetData(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for MockTargetCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ChangeOwnerSlotValue(element) => ::core::fmt::Display::fmt(element, f), - Self::Data(element) => ::core::fmt::Display::fmt(element, f), - Self::Datahash(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertWithTargetError(element) => ::core::fmt::Display::fmt(element, f), - Self::SetData(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MockTargetCalls { - fn from(value: ChangeOwnerSlotValueCall) -> Self { - Self::ChangeOwnerSlotValue(value) - } - } - impl ::core::convert::From for MockTargetCalls { - fn from(value: DataCall) -> Self { - Self::Data(value) - } - } - impl ::core::convert::From for MockTargetCalls { - fn from(value: DatahashCall) -> Self { - Self::Datahash(value) - } - } - impl ::core::convert::From for MockTargetCalls { - fn from(value: RevertWithTargetErrorCall) -> Self { - Self::RevertWithTargetError(value) - } - } - impl ::core::convert::From for MockTargetCalls { - fn from(value: SetDataCall) -> Self { - Self::SetData(value) - } - } - ///Container type for all return fields from the `data` function with signature `data()` and selector `0x73d4a13a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DataReturn(pub ::ethers::core::types::Bytes); - ///Container type for all return fields from the `datahash` function with signature `datahash()` and selector `0x276b86a9` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct DatahashReturn(pub [u8; 32]); - ///Container type for all return fields from the `setData` function with signature `setData(bytes)` and selector `0xab62f0e1` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct SetDataReturn(pub ::ethers::core::types::Bytes); -} diff --git a/xmtp_id/src/bindings/mod.rs b/xmtp_id/src/bindings/mod.rs deleted file mode 100644 index 6dd640266..000000000 --- a/xmtp_id/src/bindings/mod.rs +++ /dev/null @@ -1,37 +0,0 @@ -#![allow(clippy::all)] -//! This module contains abigen! generated bindings for solidity contracts. -//! This is autogenerated code. -//! Do not manually edit these files. -//! These files may be overwritten by the codegen system at any time. -pub mod base_64; -pub mod base_64_url; -pub mod coinbase_smart_wallet; -pub mod coinbase_smart_wallet_factory; -pub mod dummy; -pub mod erc1271; -pub mod erc1271_input_generator; -pub mod fcl_ecdsa; -pub mod fcl_elliptic_zz; -pub mod helpers; -pub mod i_aggregator; -pub mod i_entry_point; -pub mod i_nonce_manager; -pub mod i_stake_manager; -pub mod ierc721_token_receiver; -pub mod lib_clone; -pub mod lib_string; -pub mod mock_coinbase_smart_wallet; -pub mod mock_entry_point; -pub mod mock_erc20; -pub mod mock_erc721; -pub mod mock_multi_ownable; -pub mod mock_target; -pub mod multi_ownable; -pub mod receiver; -pub mod shared_types; -pub mod signature_checker_lib; -pub mod static_; -pub mod user_operation_lib; -pub mod utils; -pub mod uups_upgradeable; -pub mod web_authn; diff --git a/xmtp_id/src/bindings/multi_ownable.rs b/xmtp_id/src/bindings/multi_ownable.rs deleted file mode 100644 index a13fb3cf3..000000000 --- a/xmtp_id/src/bindings/multi_ownable.rs +++ /dev/null @@ -1,1132 +0,0 @@ -pub use multi_ownable::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod multi_ownable { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("addOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerAddress"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerBytes"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("account"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("isOwnerPublicKey"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("x"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("y"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - }, - ], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bool, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bool"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("nextOwnerIndex"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("ownerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("removeOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, - },], - ), - ]), - events: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AddOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("AddOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("RemoveOwner"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("RemoveOwner"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - indexed: true, - }, - ::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - indexed: false, - }, - ], - anonymous: false, - },], - ), - ]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("AlreadyOwner"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidEthereumAddressOwner",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidOwnerBytesLength",), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("owner"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NoOwnerAtIndex"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("index"), - kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - },], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("Unauthorized"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("Unauthorized"), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static MULTIOWNABLE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\t8\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x88W`\x005`\xE0\x1C\x80cr\xDE;Z\x11a\0[W\x80cr\xDE;Z\x14a\0\xF0W\x80c\x8E\xA6\x90)\x14a\x01\x03W\x80c\xA2\xE1\xA8\xD8\x14a\x01#W\x80c\xD9H\xFD.\x14a\x016W`\0\x80\xFD[\x80c\x06j\x1E\xB7\x14a\0\x8DW\x80c\x0F\x0F?$\x14a\0\xB5W\x80c\x1C\xA59?\x14a\0\xCAW\x80c)V^;\x14a\0\xDDW[`\0\x80\xFD[a\0\xA0a\0\x9B6`\x04a\x05\xCBV[a\x01TV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC8a\0\xC36`\x04a\x05\xEDV[a\x01\xC2V[\0[a\0\xA0a\0\xD86`\x04a\x063V[a\x01\xFAV[a\0\xC8a\0\xEB6`\x04a\x05\xCBV[a\x025V[a\0\xC8a\0\xFE6`\x04a\x06\xE4V[a\x02^V[a\x01\x16a\x01\x116`\x04a\x06\xE4V[a\x03PV[`@Qa\0\xAC\x91\x90a\x07!V[a\0\xA0a\x0116`\x04a\x05\xEDV[a\x04\x11V[`\0\x80Q` a\x08\xE3\x839\x81Q\x91RT`@Q\x90\x81R` \x01a\0\xACV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01\xA7\x91a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P\x92\x91PPV[a\x01\xCAa\x04WV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x01\xF7\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x04\x89V[PV[`\0`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`\x02\x01\x82`@Qa\x02\x1C\x91\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x02=a\x04WV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x02Z\x90``\x01a\x01\xE3V[PPV[a\x02fa\x04WV[`\0a\x02q\x82a\x03PV[\x90P\x80Q`\0\x03a\x02\x9DW`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\x02\xCD\x90\x83\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\x02\xF9`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x03\x14\x91a\x05}V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x03D\x91\x90a\x07!V[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x03\x8C\x90a\x07pV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xB8\x90a\x07pV[\x80\x15a\x04\x05W\x80`\x1F\x10a\x03\xDAWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x05V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\xE8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02\x1C\x91a\x07TV[a\x04`3a\x04\x11V[\x80a\x04jWP30\x14[\x15a\x04qWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF7\x81`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x80T\x90`\0a\x04\xAA\x83a\x07\xAAV[\x91\x90PUa\x04\xB7\x82a\x01\xFAV[\x15a\x04\xD7W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x02\x94\x91\x90a\x07!V[`\x01`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`\x02\x01\x83`@Qa\x04\xF9\x91\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x05/`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x05L\x90\x82a\x08\"V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x03D\x91\x90a\x07!V[P\x80Ta\x05\x89\x90a\x07pV[`\0\x82U\x80`\x1F\x10a\x05\x99WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x01\xF7\x91\x90[\x80\x82\x11\x15a\x05\xC7W`\0\x81U`\x01\x01a\x05\xB3V[P\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x05\xDEW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\x05\xFFW`\0\x80\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x06\x16W`\0\x80\xFD[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x06EW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06]W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x06qW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x06\x83Wa\x06\x83a\x06\x1DV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x06\xABWa\x06\xABa\x06\x1DV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x06\xC4W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x06\xF6W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\x07\x18W\x81\x81\x01Q\x83\x82\x01R` \x01a\x07\0V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x07@\x81`@\x85\x01` \x87\x01a\x06\xFDV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\x07f\x81\x84` \x87\x01a\x06\xFDV[\x91\x90\x91\x01\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x07\x84W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x07\xA4WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`\x01\x82\x01a\x07\xCAWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\x1F\x82\x11\x15a\x08\x1DW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x07\xFAWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x08\x19W\x82\x81U`\x01\x01a\x08\x06V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08I[gTmvF\xF0J\xDE\x10\xDD@\x17\xA7*\x8B2\xD7dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static MULTIOWNABLE_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x88W`\x005`\xE0\x1C\x80cr\xDE;Z\x11a\0[W\x80cr\xDE;Z\x14a\0\xF0W\x80c\x8E\xA6\x90)\x14a\x01\x03W\x80c\xA2\xE1\xA8\xD8\x14a\x01#W\x80c\xD9H\xFD.\x14a\x016W`\0\x80\xFD[\x80c\x06j\x1E\xB7\x14a\0\x8DW\x80c\x0F\x0F?$\x14a\0\xB5W\x80c\x1C\xA59?\x14a\0\xCAW\x80c)V^;\x14a\0\xDDW[`\0\x80\xFD[a\0\xA0a\0\x9B6`\x04a\x05\xCBV[a\x01TV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC8a\0\xC36`\x04a\x05\xEDV[a\x01\xC2V[\0[a\0\xA0a\0\xD86`\x04a\x063V[a\x01\xFAV[a\0\xC8a\0\xEB6`\x04a\x05\xCBV[a\x025V[a\0\xC8a\0\xFE6`\x04a\x06\xE4V[a\x02^V[a\x01\x16a\x01\x116`\x04a\x06\xE4V[a\x03PV[`@Qa\0\xAC\x91\x90a\x07!V[a\0\xA0a\x0116`\x04a\x05\xEDV[a\x04\x11V[`\0\x80Q` a\x08\xE3\x839\x81Q\x91RT`@Q\x90\x81R` \x01a\0\xACV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90R`\0\x90\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90``\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01\xA7\x91a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x90P\x92\x91PPV[a\x01\xCAa\x04WV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x83\x16` \x82\x01Ra\x01\xF7\x91\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x04\x89V[PV[`\0`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`\x02\x01\x82`@Qa\x02\x1C\x91\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T`\xFF\x16\x92\x91PPV[a\x02=a\x04WV[`@\x80Q` \x81\x01\x84\x90R\x90\x81\x01\x82\x90Ra\x02Z\x90``\x01a\x01\xE3V[PPV[a\x02fa\x04WV[`\0a\x02q\x82a\x03PV[\x90P\x80Q`\0\x03a\x02\x9DW`@Qc4\x0CG=`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x01[`@Q\x80\x91\x03\x90\xFD[`@Q\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x02\x90a\x02\xCD\x90\x83\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T`\xFF\x19\x16\x90Ua\x02\xF9`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x81 a\x03\x14\x91a\x05}V[\x81\x7F\xCF\x95\xBB\xFEo\x87\x0F\x8C\xC4\x04\x82\xDC=\xCC\xDA\xFD&\x8F\x0E\x9C\xE0\xA4\xF2N\xA1\xBE\xA9\xBEd\xE5\x05\xFF\x82`@Qa\x03D\x91\x90a\x07!V[`@Q\x80\x91\x03\x90\xA2PPV[`\0\x81\x81R\x7F\x97\xE2\xC6\xAA\xD4\xCE]V.\xBF\xAA\0\xDBk\x9E\x0F\xB6n\xA5\xD8\x16.\xD5\xB2C\xF5\x1A.\x03\x08o\x01` R`@\x90 \x80T``\x91\x90a\x03\x8C\x90a\x07pV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\xB8\x90a\x07pV[\x80\x15a\x04\x05W\x80`\x1F\x10a\x03\xDAWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x04\x05V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x03\xE8W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x91\x90PV[`\0`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16` \x82\x01R`\x02\x92\x90\x92\x01\x91\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x02\x1C\x91a\x07TV[a\x04`3a\x04\x11V[\x80a\x04jWP30\x14[\x15a\x04qWV[`@Qb\x82\xB4)`\xE8\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF7\x81`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x80T\x90`\0a\x04\xAA\x83a\x07\xAAV[\x91\x90PUa\x04\xB7\x82a\x01\xFAV[\x15a\x04\xD7W\x81`@QcF\x8B\x12\xAD`\xE1\x1B\x81R`\x04\x01a\x02\x94\x91\x90a\x07!V[`\x01`\0\x80Q` a\x08\xE3\x839\x81Q\x91R`\x02\x01\x83`@Qa\x04\xF9\x91\x90a\x07TV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 \x80T\x91\x15\x15`\xFF\x19\x90\x92\x16\x91\x90\x91\x17\x90U\x81a\x05/`\0\x80Q` a\x08\xE3\x839\x81Q\x91R\x90V[`\0\x83\x81R`\x01\x91\x90\x91\x01` R`@\x90 \x90a\x05L\x90\x82a\x08\"V[P\x80\x7F8\x10\x9E\xDC&\xE1f\xB5W\x93R\xCEV\xA5\x08\x13\x17~\xB2R\x08\xFD\x90\xD6\x1F/7\x83\x86\"\x02 \x83`@Qa\x03D\x91\x90a\x07!V[P\x80Ta\x05\x89\x90a\x07pV[`\0\x82U\x80`\x1F\x10a\x05\x99WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x01\xF7\x91\x90[\x80\x82\x11\x15a\x05\xC7W`\0\x81U`\x01\x01a\x05\xB3V[P\x90V[`\0\x80`@\x83\x85\x03\x12\x15a\x05\xDEW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a\x05\xFFW`\0\x80\xFD[\x815`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x06\x16W`\0\x80\xFD[\x93\x92PPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x06EW`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x06]W`\0\x80\xFD[\x81\x84\x01\x91P\x84`\x1F\x83\x01\x12a\x06qW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x06\x83Wa\x06\x83a\x06\x1DV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x06\xABWa\x06\xABa\x06\x1DV[\x81`@R\x82\x81R\x87` \x84\x87\x01\x01\x11\x15a\x06\xC4W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0\x92\x81\x01` \x01\x92\x90\x92RP\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15a\x06\xF6W`\0\x80\xFD[P5\x91\x90PV[`\0[\x83\x81\x10\x15a\x07\x18W\x81\x81\x01Q\x83\x82\x01R` \x01a\x07\0V[PP`\0\x91\x01RV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x07@\x81`@\x85\x01` \x87\x01a\x06\xFDV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[`\0\x82Qa\x07f\x81\x84` \x87\x01a\x06\xFDV[\x91\x90\x91\x01\x92\x91PPV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x07\x84W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x07\xA4WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\0`\x01\x82\x01a\x07\xCAWcNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[P`\x01\x01\x90V[`\x1F\x82\x11\x15a\x08\x1DW`\0\x81`\0R` `\0 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x07\xFAWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x08\x19W\x82\x81U`\x01\x01a\x08\x06V[PPP[PPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x08I[gTmvF\xF0J\xDE\x10\xDD@\x17\xA7*\x8B2\xD7dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static MULTIOWNABLE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct MultiOwnable(::ethers::contract::Contract); - impl ::core::clone::Clone for MultiOwnable { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for MultiOwnable { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for MultiOwnable { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for MultiOwnable { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(MultiOwnable)) - .field(&self.address()) - .finish() - } - } - impl MultiOwnable { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - MULTIOWNABLE_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - MULTIOWNABLE_ABI.clone(), - MULTIOWNABLE_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `addOwnerAddress` (0x0f0f3f24) function - pub fn add_owner_address( - &self, - owner: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([15, 15, 63, 36], owner) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `addOwnerPublicKey` (0x29565e3b) function - pub fn add_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([41, 86, 94, 59], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerAddress` (0xa2e1a8d8) function - pub fn is_owner_address( - &self, - account: ::ethers::core::types::Address, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([162, 225, 168, 216], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerBytes` (0x1ca5393f) function - pub fn is_owner_bytes( - &self, - account: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([28, 165, 57, 63], account) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `isOwnerPublicKey` (0x066a1eb7) function - pub fn is_owner_public_key( - &self, - x: [u8; 32], - y: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([6, 106, 30, 183], (x, y)) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `nextOwnerIndex` (0xd948fd2e) function - pub fn next_owner_index( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([217, 72, 253, 46], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `ownerAtIndex` (0x8ea69029) function - pub fn owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([142, 166, 144, 41], index) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `removeOwnerAtIndex` (0x72de3b5a) function - pub fn remove_owner_at_index( - &self, - index: ::ethers::core::types::U256, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([114, 222, 59, 90], index) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `AddOwner` event - pub fn add_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, AddOwnerFilter> { - self.0.event() - } - ///Gets the contract's `RemoveOwner` event - pub fn remove_owner_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, RemoveOwnerFilter> - { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, MultiOwnableEvents> - { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> for MultiOwnable { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `AlreadyOwner` with signature `AlreadyOwner(bytes)` and selector `0x8d16255a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "AlreadyOwner", abi = "AlreadyOwner(bytes)")] - pub struct AlreadyOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidEthereumAddressOwner` with signature `InvalidEthereumAddressOwner(bytes)` and selector `0xbff1ac65` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidEthereumAddressOwner", - abi = "InvalidEthereumAddressOwner(bytes)" - )] - pub struct InvalidEthereumAddressOwner { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `InvalidOwnerBytesLength` with signature `InvalidOwnerBytesLength(bytes)` and selector `0x4eeab722` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror( - name = "InvalidOwnerBytesLength", - abi = "InvalidOwnerBytesLength(bytes)" - )] - pub struct InvalidOwnerBytesLength { - pub owner: ::ethers::core::types::Bytes, - } - ///Custom Error type `NoOwnerAtIndex` with signature `NoOwnerAtIndex(uint256)` and selector `0x68188e7a` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "NoOwnerAtIndex", abi = "NoOwnerAtIndex(uint256)")] - pub struct NoOwnerAtIndex { - pub index: ::ethers::core::types::U256, - } - ///Custom Error type `Unauthorized` with signature `Unauthorized()` and selector `0x82b42900` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "Unauthorized", abi = "Unauthorized()")] - pub struct Unauthorized; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MultiOwnableErrors { - AlreadyOwner(AlreadyOwner), - InvalidEthereumAddressOwner(InvalidEthereumAddressOwner), - InvalidOwnerBytesLength(InvalidOwnerBytesLength), - NoOwnerAtIndex(NoOwnerAtIndex), - Unauthorized(Unauthorized), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for MultiOwnableErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::AlreadyOwner(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidEthereumAddressOwner(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::InvalidOwnerBytesLength(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::NoOwnerAtIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::Unauthorized(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MultiOwnableErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::AlreadyOwner(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::InvalidEthereumAddressOwner(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::InvalidOwnerBytesLength(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::NoOwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::Unauthorized(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for MultiOwnableErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector == ::selector() => true, - _ if selector - == ::selector( - ) => - { - true - } - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ if selector == ::selector() => true, - _ => false, - } - } - } - impl ::core::fmt::Display for MultiOwnableErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AlreadyOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidEthereumAddressOwner(element) => ::core::fmt::Display::fmt(element, f), - Self::InvalidOwnerBytesLength(element) => ::core::fmt::Display::fmt(element, f), - Self::NoOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::Unauthorized(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for MultiOwnableErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for MultiOwnableErrors { - fn from(value: AlreadyOwner) -> Self { - Self::AlreadyOwner(value) - } - } - impl ::core::convert::From for MultiOwnableErrors { - fn from(value: InvalidEthereumAddressOwner) -> Self { - Self::InvalidEthereumAddressOwner(value) - } - } - impl ::core::convert::From for MultiOwnableErrors { - fn from(value: InvalidOwnerBytesLength) -> Self { - Self::InvalidOwnerBytesLength(value) - } - } - impl ::core::convert::From for MultiOwnableErrors { - fn from(value: NoOwnerAtIndex) -> Self { - Self::NoOwnerAtIndex(value) - } - } - impl ::core::convert::From for MultiOwnableErrors { - fn from(value: Unauthorized) -> Self { - Self::Unauthorized(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "AddOwner", abi = "AddOwner(uint256,bytes)")] - pub struct AddOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "RemoveOwner", abi = "RemoveOwner(uint256,bytes)")] - pub struct RemoveOwnerFilter { - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub owner: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's events - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MultiOwnableEvents { - AddOwnerFilter(AddOwnerFilter), - RemoveOwnerFilter(RemoveOwnerFilter), - } - impl ::ethers::contract::EthLogDecode for MultiOwnableEvents { - fn decode_log( - log: &::ethers::core::abi::RawLog, - ) -> ::core::result::Result { - if let Ok(decoded) = AddOwnerFilter::decode_log(log) { - return Ok(MultiOwnableEvents::AddOwnerFilter(decoded)); - } - if let Ok(decoded) = RemoveOwnerFilter::decode_log(log) { - return Ok(MultiOwnableEvents::RemoveOwnerFilter(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData) - } - } - impl ::core::fmt::Display for MultiOwnableEvents { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerFilter(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MultiOwnableEvents { - fn from(value: AddOwnerFilter) -> Self { - Self::AddOwnerFilter(value) - } - } - impl ::core::convert::From for MultiOwnableEvents { - fn from(value: RemoveOwnerFilter) -> Self { - Self::RemoveOwnerFilter(value) - } - } - ///Container type for all input parameters for the `addOwnerAddress` function with signature `addOwnerAddress(address)` and selector `0x0f0f3f24` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerAddress", abi = "addOwnerAddress(address)")] - pub struct AddOwnerAddressCall { - pub owner: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `addOwnerPublicKey` function with signature `addOwnerPublicKey(bytes32,bytes32)` and selector `0x29565e3b` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "addOwnerPublicKey", abi = "addOwnerPublicKey(bytes32,bytes32)")] - pub struct AddOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerAddress", abi = "isOwnerAddress(address)")] - pub struct IsOwnerAddressCall { - pub account: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerBytes", abi = "isOwnerBytes(bytes)")] - pub struct IsOwnerBytesCall { - pub account: ::ethers::core::types::Bytes, - } - ///Container type for all input parameters for the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "isOwnerPublicKey", abi = "isOwnerPublicKey(bytes32,bytes32)")] - pub struct IsOwnerPublicKeyCall { - pub x: [u8; 32], - pub y: [u8; 32], - } - ///Container type for all input parameters for the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "nextOwnerIndex", abi = "nextOwnerIndex()")] - pub struct NextOwnerIndexCall; - ///Container type for all input parameters for the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "ownerAtIndex", abi = "ownerAtIndex(uint256)")] - pub struct OwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all input parameters for the `removeOwnerAtIndex` function with signature `removeOwnerAtIndex(uint256)` and selector `0x72de3b5a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "removeOwnerAtIndex", abi = "removeOwnerAtIndex(uint256)")] - pub struct RemoveOwnerAtIndexCall { - pub index: ::ethers::core::types::U256, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum MultiOwnableCalls { - AddOwnerAddress(AddOwnerAddressCall), - AddOwnerPublicKey(AddOwnerPublicKeyCall), - IsOwnerAddress(IsOwnerAddressCall), - IsOwnerBytes(IsOwnerBytesCall), - IsOwnerPublicKey(IsOwnerPublicKeyCall), - NextOwnerIndex(NextOwnerIndexCall), - OwnerAtIndex(OwnerAtIndexCall), - RemoveOwnerAtIndex(RemoveOwnerAtIndexCall), - } - impl ::ethers::core::abi::AbiDecode for MultiOwnableCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerAddress(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::AddOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerAddress(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::IsOwnerBytes(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::IsOwnerPublicKey(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::NextOwnerIndex(decoded)); - } - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::OwnerAtIndex(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::RemoveOwnerAtIndex(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for MultiOwnableCalls { - fn encode(self) -> Vec { - match self { - Self::AddOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::AddOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerBytes(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::IsOwnerPublicKey(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::NextOwnerIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::OwnerAtIndex(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RemoveOwnerAtIndex(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - } - } - } - impl ::core::fmt::Display for MultiOwnableCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::AddOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::AddOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerAddress(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerBytes(element) => ::core::fmt::Display::fmt(element, f), - Self::IsOwnerPublicKey(element) => ::core::fmt::Display::fmt(element, f), - Self::NextOwnerIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::OwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - Self::RemoveOwnerAtIndex(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: AddOwnerAddressCall) -> Self { - Self::AddOwnerAddress(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: AddOwnerPublicKeyCall) -> Self { - Self::AddOwnerPublicKey(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: IsOwnerAddressCall) -> Self { - Self::IsOwnerAddress(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: IsOwnerBytesCall) -> Self { - Self::IsOwnerBytes(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: IsOwnerPublicKeyCall) -> Self { - Self::IsOwnerPublicKey(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: NextOwnerIndexCall) -> Self { - Self::NextOwnerIndex(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: OwnerAtIndexCall) -> Self { - Self::OwnerAtIndex(value) - } - } - impl ::core::convert::From for MultiOwnableCalls { - fn from(value: RemoveOwnerAtIndexCall) -> Self { - Self::RemoveOwnerAtIndex(value) - } - } - ///Container type for all return fields from the `isOwnerAddress` function with signature `isOwnerAddress(address)` and selector `0xa2e1a8d8` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerAddressReturn(pub bool); - ///Container type for all return fields from the `isOwnerBytes` function with signature `isOwnerBytes(bytes)` and selector `0x1ca5393f` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerBytesReturn(pub bool); - ///Container type for all return fields from the `isOwnerPublicKey` function with signature `isOwnerPublicKey(bytes32,bytes32)` and selector `0x066a1eb7` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct IsOwnerPublicKeyReturn(pub bool); - ///Container type for all return fields from the `nextOwnerIndex` function with signature `nextOwnerIndex()` and selector `0xd948fd2e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct NextOwnerIndexReturn(pub ::ethers::core::types::U256); - ///Container type for all return fields from the `ownerAtIndex` function with signature `ownerAtIndex(uint256)` and selector `0x8ea69029` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct OwnerAtIndexReturn(pub ::ethers::core::types::Bytes); -} diff --git a/xmtp_id/src/bindings/receiver.rs b/xmtp_id/src/bindings/receiver.rs deleted file mode 100644 index 965439608..000000000 --- a/xmtp_id/src/bindings/receiver.rs +++ /dev/null @@ -1,70 +0,0 @@ -pub use receiver::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod receiver { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: true, - fallback: true, - } - } - ///The parsed JSON ABI of the contract. - pub static RECEIVER_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct Receiver(::ethers::contract::Contract); - impl ::core::clone::Clone for Receiver { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Receiver { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Receiver { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Receiver { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Receiver)) - .field(&self.address()) - .finish() - } - } - impl Receiver { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - RECEIVER_ABI.clone(), - client, - )) - } - } - impl From<::ethers::contract::Contract> for Receiver { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/shared_types.rs b/xmtp_id/src/bindings/shared_types.rs deleted file mode 100644 index 82d3f4866..000000000 --- a/xmtp_id/src/bindings/shared_types.rs +++ /dev/null @@ -1,64 +0,0 @@ -///`Call(address,uint256,bytes)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct Call { - pub target: ::ethers::core::types::Address, - pub value: ::ethers::core::types::U256, - pub data: ::ethers::core::types::Bytes, -} -///`DepositInfo(uint112,bool,uint112,uint32,uint48)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct DepositInfo { - pub deposit: u128, - pub staked: bool, - pub stake: u128, - pub unstake_delay_sec: u32, - pub withdraw_time: u64, -} -///`UserOperation(address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)` -#[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, -)] -pub struct UserOperation { - pub sender: ::ethers::core::types::Address, - pub nonce: ::ethers::core::types::U256, - pub init_code: ::ethers::core::types::Bytes, - pub call_data: ::ethers::core::types::Bytes, - pub call_gas_limit: ::ethers::core::types::U256, - pub verification_gas_limit: ::ethers::core::types::U256, - pub pre_verification_gas: ::ethers::core::types::U256, - pub max_fee_per_gas: ::ethers::core::types::U256, - pub max_priority_fee_per_gas: ::ethers::core::types::U256, - pub paymaster_and_data: ::ethers::core::types::Bytes, - pub signature: ::ethers::core::types::Bytes, -} diff --git a/xmtp_id/src/bindings/signature_checker_lib.rs b/xmtp_id/src/bindings/signature_checker_lib.rs deleted file mode 100644 index a99f842df..000000000 --- a/xmtp_id/src/bindings/signature_checker_lib.rs +++ /dev/null @@ -1,121 +0,0 @@ -pub use signature_checker_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod signature_checker_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static SIGNATURECHECKERLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9C\xB1\x93U\x9D\x86\x0CS\xAA\xE6_\xDFzh$\xF7\xE5\xCE\x03\x08\x1D-\xD6\x1Cg%\x1A\x87i\x12\x88\xE4dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static SIGNATURECHECKERLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9C\xB1\x93U\x9D\x86\x0CS\xAA\xE6_\xDFzh$\xF7\xE5\xCE\x03\x08\x1D-\xD6\x1Cg%\x1A\x87i\x12\x88\xE4dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static SIGNATURECHECKERLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct SignatureCheckerLib(::ethers::contract::Contract); - impl ::core::clone::Clone for SignatureCheckerLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for SignatureCheckerLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for SignatureCheckerLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for SignatureCheckerLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(SignatureCheckerLib)) - .field(&self.address()) - .finish() - } - } - impl SignatureCheckerLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - SIGNATURECHECKERLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - SIGNATURECHECKERLIB_ABI.clone(), - SIGNATURECHECKERLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for SignatureCheckerLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/static_.rs b/xmtp_id/src/bindings/static_.rs deleted file mode 100644 index a8fa29ede..000000000 --- a/xmtp_id/src/bindings/static_.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub use static_::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod static_ { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static STATIC_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xCA\xE6\xF2\xC3w\xFD\xE2Am\xB9\x15\xF8\x19M\xF1\x1AK |\xD1n\xCE\x1ET\ryU(+\x8D\xFF\x8FdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static STATIC_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xCA\xE6\xF2\xC3w\xFD\xE2Am\xB9\x15\xF8\x19M\xF1\x1AK |\xD1n\xCE\x1ET\ryU(+\x8D\xFF\x8FdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static STATIC_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Static(::ethers::contract::Contract); - impl ::core::clone::Clone for Static { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Static { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Static { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Static { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Static)) - .field(&self.address()) - .finish() - } - } - impl Static { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - STATIC_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - STATIC_ABI.clone(), - STATIC_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for Static { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/user_operation_lib.rs b/xmtp_id/src/bindings/user_operation_lib.rs deleted file mode 100644 index e73e4dbf3..000000000 --- a/xmtp_id/src/bindings/user_operation_lib.rs +++ /dev/null @@ -1,121 +0,0 @@ -pub use user_operation_lib::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod user_operation_lib { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static USEROPERATIONLIB_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xDB\xA9\xE6\xF7\x03\xF2\xD6\xEE\xB19\xF4p\x88\xA6\xA1RLBP\xA7\x18\xDE'\xAE\xD3'Digzb\x8EdsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static USEROPERATIONLIB_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xDB\xA9\xE6\xF7\x03\xF2\xD6\xEE\xB19\xF4p\x88\xA6\xA1RLBP\xA7\x18\xDE'\xAE\xD3'Digzb\x8EdsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static USEROPERATIONLIB_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct UserOperationLib(::ethers::contract::Contract); - impl ::core::clone::Clone for UserOperationLib { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for UserOperationLib { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for UserOperationLib { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for UserOperationLib { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(UserOperationLib)) - .field(&self.address()) - .finish() - } - } - impl UserOperationLib { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - USEROPERATIONLIB_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - USEROPERATIONLIB_ABI.clone(), - USEROPERATIONLIB_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> - for UserOperationLib - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/bindings/utils.rs b/xmtp_id/src/bindings/utils.rs deleted file mode 100644 index aee39dba1..000000000 --- a/xmtp_id/src/bindings/utils.rs +++ /dev/null @@ -1,202 +0,0 @@ -pub use utils::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod utils { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([( - ::std::borrow::ToOwned::to_owned("getWebAuthnStruct"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("getWebAuthnStruct"), - inputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("challenge"), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Bytes, - ::ethers::core::abi::ethabi::ParamType::String, - ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), - ],), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("struct WebAuthnInfo"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, - },], - )]), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static UTILS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"a\x05\xEDa\0:`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14a\0-WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\x005W`\x005`\xE0\x1C\x80c\x8F\x7FYn\x14a\0:W[`\0\x80\xFD[a\0Ma\0H6`\x04a\x03%V[a\0cV[`@Qa\0Z\x91\x90a\x03\x8EV[`@Q\x80\x91\x03\x90\xF3[`@\x80Q``\x80\x82\x01\x83R\x80\x82R` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R`\0a\0\xAB\x83`@Q` \x01a\0\x97\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x01\xD4V[\x90P`\0\x81`@Q` \x01a\0\xC0\x91\x90a\x03\xDEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R``\x83\x01\x90\x91R`%\x80\x83R\x90\x92P`\0\x91\x90a\x05S` \x83\x019\x90P`\0`\x02\x83`@Qa\0\xFC\x91\x90a\x04}V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x01\x19W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01<\x91\x90a\x04\x99V[\x90P`\0`\x02\x83\x83`@Q` \x01a\x01U\x92\x91\x90a\x04\xB2V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01o\x91a\x04}V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x01\x8CW=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xAF\x91\x90a\x04\x99V[`@\x80Q``\x81\x01\x82R\x94\x85R` \x85\x01\x95\x90\x95R\x93\x83\x01\x93\x90\x93RP\x94\x93PPPPV[``\x81Q`\0\x03a\x01\xF3WPP`@\x80Q` \x81\x01\x90\x91R`\0\x81R\x90V[`\0`@Q\x80``\x01`@R\x80`@\x81R` \x01a\x05x`@\x919\x90P`\0`\x03\x84Q`\x02a\x02\"\x91\x90a\x04\xEAV[a\x02,\x91\x90a\x05\x03V[a\x027\x90`\x04a\x05%V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x02OWa\x02Oa\x05V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0\x82Q``` \x84\x01Ra\x03\xAA`\x80\x84\x01\x82a\x03bV[\x90P` \x84\x01Q`\x1F\x19\x84\x83\x03\x01`@\x85\x01Ra\x03\xC7\x82\x82a\x03bV[\x91PP`@\x84\x01Q``\x84\x01R\x80\x91PP\x92\x91PPV[\x7F{\"type\":\"webauthn.get\",\"challeng\x81Rc2\x91\x1D\x11`\xE1\x1B` \x82\x01R`\0\x82Qa\x04#\x81`$\x85\x01` \x87\x01a\x03>V[\x7F\",\"origin\":\"https://sign.coinbas`$\x93\x90\x91\x01\x92\x83\x01RP\x7Fe.com\",\"crossOrigin\":false}\0\0\0\0\0`D\x82\x01R`_\x01\x91\x90PV[`\0\x82Qa\x04\x8F\x81\x84` \x87\x01a\x03>V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x04\xABW`\0\x80\xFD[PQ\x91\x90PV[`\0\x83Qa\x04\xC4\x81\x84` \x88\x01a\x03>V[\x91\x90\x91\x01\x91\x82RP` \x01\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x04\xFDWa\x04\xFDa\x04\xD4V[\x92\x91PPV[`\0\x82a\x05 WcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x04\xFDWa\x04\xFDa\x04\xD4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD\xFEI\x96\r\xE5\x88\x0E\x8Cht4\x17\x0Fdv`[\x8F\xE4\xAE\xB9\xA2\x862\xC7\x99\\\xF3\xBA\x83\x1D\x97c\x05\0\0\0\0ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\xA2dipfsX\"\x12 \xD2\xAD\xD6\x1E\x12\xD8p\"ML\x0E\xE2\xB8-\xCCP\xFD\xCA\x0E\xC1\x13\xCCL\xF22 L\xC0\x92\x91\xB4\x10dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static UTILS_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\x005W`\x005`\xE0\x1C\x80c\x8F\x7FYn\x14a\0:W[`\0\x80\xFD[a\0Ma\0H6`\x04a\x03%V[a\0cV[`@Qa\0Z\x91\x90a\x03\x8EV[`@Q\x80\x91\x03\x90\xF3[`@\x80Q``\x80\x82\x01\x83R\x80\x82R` \x82\x01R`\0\x91\x81\x01\x91\x90\x91R`\0a\0\xAB\x83`@Q` \x01a\0\x97\x91\x81R` \x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x01\xD4V[\x90P`\0\x81`@Q` \x01a\0\xC0\x91\x90a\x03\xDEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R``\x83\x01\x90\x91R`%\x80\x83R\x90\x92P`\0\x91\x90a\x05S` \x83\x019\x90P`\0`\x02\x83`@Qa\0\xFC\x91\x90a\x04}V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x01\x19W=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01<\x91\x90a\x04\x99V[\x90P`\0`\x02\x83\x83`@Q` \x01a\x01U\x92\x91\x90a\x04\xB2V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x01o\x91a\x04}V[` `@Q\x80\x83\x03\x81\x85Z\xFA\x15\x80\x15a\x01\x8CW=`\0\x80>=`\0\xFD[PPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xAF\x91\x90a\x04\x99V[`@\x80Q``\x81\x01\x82R\x94\x85R` \x85\x01\x95\x90\x95R\x93\x83\x01\x93\x90\x93RP\x94\x93PPPPV[``\x81Q`\0\x03a\x01\xF3WPP`@\x80Q` \x81\x01\x90\x91R`\0\x81R\x90V[`\0`@Q\x80``\x01`@R\x80`@\x81R` \x01a\x05x`@\x919\x90P`\0`\x03\x84Q`\x02a\x02\"\x91\x90a\x04\xEAV[a\x02,\x91\x90a\x05\x03V[a\x027\x90`\x04a\x05%V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x02OWa\x02Oa\x05V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0\x82Q``` \x84\x01Ra\x03\xAA`\x80\x84\x01\x82a\x03bV[\x90P` \x84\x01Q`\x1F\x19\x84\x83\x03\x01`@\x85\x01Ra\x03\xC7\x82\x82a\x03bV[\x91PP`@\x84\x01Q``\x84\x01R\x80\x91PP\x92\x91PPV[\x7F{\"type\":\"webauthn.get\",\"challeng\x81Rc2\x91\x1D\x11`\xE1\x1B` \x82\x01R`\0\x82Qa\x04#\x81`$\x85\x01` \x87\x01a\x03>V[\x7F\",\"origin\":\"https://sign.coinbas`$\x93\x90\x91\x01\x92\x83\x01RP\x7Fe.com\",\"crossOrigin\":false}\0\0\0\0\0`D\x82\x01R`_\x01\x91\x90PV[`\0\x82Qa\x04\x8F\x81\x84` \x87\x01a\x03>V[\x91\x90\x91\x01\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x04\xABW`\0\x80\xFD[PQ\x91\x90PV[`\0\x83Qa\x04\xC4\x81\x84` \x88\x01a\x03>V[\x91\x90\x91\x01\x91\x82RP` \x01\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x04\xFDWa\x04\xFDa\x04\xD4V[\x92\x91PPV[`\0\x82a\x05 WcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x04\xFDWa\x04\xFDa\x04\xD4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD\xFEI\x96\r\xE5\x88\x0E\x8Cht4\x17\x0Fdv`[\x8F\xE4\xAE\xB9\xA2\x862\xC7\x99\\\xF3\xBA\x83\x1D\x97c\x05\0\0\0\0ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\xA2dipfsX\"\x12 \xD2\xAD\xD6\x1E\x12\xD8p\"ML\x0E\xE2\xB8-\xCCP\xFD\xCA\x0E\xC1\x13\xCCL\xF22 L\xC0\x92\x91\xB4\x10dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static UTILS_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct Utils(::ethers::contract::Contract); - impl ::core::clone::Clone for Utils { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for Utils { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for Utils { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for Utils { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(Utils)) - .field(&self.address()) - .finish() - } - } - impl Utils { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UTILS_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - UTILS_ABI.clone(), - UTILS_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - ///Calls the contract's `getWebAuthnStruct` (0x8f7f596e) function - pub fn get_web_authn_struct( - &self, - challenge: [u8; 32], - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([143, 127, 89, 110], challenge) - .expect("method not found (this should never happen)") - } - } - impl From<::ethers::contract::Contract> for Utils { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Container type for all input parameters for the `getWebAuthnStruct` function with signature `getWebAuthnStruct(bytes32)` and selector `0x8f7f596e` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "getWebAuthnStruct", abi = "getWebAuthnStruct(bytes32)")] - pub struct GetWebAuthnStructCall { - pub challenge: [u8; 32], - } - ///Container type for all return fields from the `getWebAuthnStruct` function with signature `getWebAuthnStruct(bytes32)` and selector `0x8f7f596e` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct GetWebAuthnStructReturn(pub WebAuthnInfo); - ///`WebAuthnInfo(bytes,string,bytes32)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct WebAuthnInfo { - pub authenticator_data: ::ethers::core::types::Bytes, - pub client_data_json: ::std::string::String, - pub message_hash: [u8; 32], - } -} diff --git a/xmtp_id/src/bindings/uups_upgradeable.rs b/xmtp_id/src/bindings/uups_upgradeable.rs deleted file mode 100644 index 13d6fa87f..000000000 --- a/xmtp_id/src/bindings/uups_upgradeable.rs +++ /dev/null @@ -1,411 +0,0 @@ -pub use uups_upgradeable::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod uups_upgradeable { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("proxiableUUID"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("proxiableUUID"), - inputs: ::std::vec![], - outputs: ::std::vec![::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes32"), - ), - },], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - },], - ), - ( - ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - ::std::vec![::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("newImplementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("address"), - ), - }, - ::ethers::core::abi::ethabi::Param { - name: ::std::borrow::ToOwned::to_owned("data"), - kind: ::ethers::core::abi::ethabi::ParamType::Bytes, - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("bytes"), - ), - }, - ], - outputs: ::std::vec![], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, - },], - ), - ]), - events: ::core::convert::From::from([( - ::std::borrow::ToOwned::to_owned("Upgraded"), - ::std::vec![::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("Upgraded"), - inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { - name: ::std::borrow::ToOwned::to_owned("implementation"), - kind: ::ethers::core::abi::ethabi::ParamType::Address, - indexed: true, - },], - anonymous: false, - },], - )]), - errors: ::core::convert::From::from([ - ( - ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UnauthorizedCallContext",), - inputs: ::std::vec![], - },], - ), - ( - ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - ::std::vec![::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("UpgradeFailed"), - inputs: ::std::vec![], - },], - ), - ]), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static UUPSUPGRADEABLE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - pub struct UUPSUpgradeable(::ethers::contract::Contract); - impl ::core::clone::Clone for UUPSUpgradeable { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for UUPSUpgradeable { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for UUPSUpgradeable { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for UUPSUpgradeable { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(UUPSUpgradeable)) - .field(&self.address()) - .finish() - } - } - impl UUPSUpgradeable { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - UUPSUPGRADEABLE_ABI.clone(), - client, - )) - } - ///Calls the contract's `proxiableUUID` (0x52d1902d) function - pub fn proxiable_uuid(&self) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([82, 209, 144, 45], ()) - .expect("method not found (this should never happen)") - } - ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function - pub fn upgrade_to_and_call( - &self, - new_implementation: ::ethers::core::types::Address, - data: ::ethers::core::types::Bytes, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([79, 30, 242, 134], (new_implementation, data)) - .expect("method not found (this should never happen)") - } - ///Gets the contract's `Upgraded` event - pub fn upgraded_filter( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { - self.0.event() - } - /// Returns an `Event` builder for all the events of this contract. - pub fn events( - &self, - ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { - self.0 - .event_with_filter(::core::default::Default::default()) - } - } - impl From<::ethers::contract::Contract> - for UUPSUpgradeable - { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } - ///Custom Error type `UnauthorizedCallContext` with signature `UnauthorizedCallContext()` and selector `0x9f03a026` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UnauthorizedCallContext", abi = "UnauthorizedCallContext()")] - pub struct UnauthorizedCallContext; - ///Custom Error type `UpgradeFailed` with signature `UpgradeFailed()` and selector `0x55299b49` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[etherror(name = "UpgradeFailed", abi = "UpgradeFailed()")] - pub struct UpgradeFailed; - ///Container type for all of the contract's custom errors - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum UUPSUpgradeableErrors { - UnauthorizedCallContext(UnauthorizedCallContext), - UpgradeFailed(UpgradeFailed), - /// The standard solidity revert string, with selector - /// Error(string) -- 0x08c379a0 - RevertString(::std::string::String), - } - impl ::ethers::core::abi::AbiDecode for UUPSUpgradeableErrors { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = - <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) - { - return Ok(Self::RevertString(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UnauthorizedCallContext(decoded)); - } - if let Ok(decoded) = ::decode(data) { - return Ok(Self::UpgradeFailed(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for UUPSUpgradeableErrors { - fn encode(self) -> ::std::vec::Vec { - match self { - Self::UnauthorizedCallContext(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } - Self::UpgradeFailed(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), - } - } - } - impl ::ethers::contract::ContractRevert for UUPSUpgradeableErrors { - fn valid_selector(selector: [u8; 4]) -> bool { - match selector { - [0x08, 0xc3, 0x79, 0xa0] => true, - _ if selector - == ::selector() => - { - true - } - _ if selector == ::selector() => { - true - } - _ => false, - } - } - } - impl ::core::fmt::Display for UUPSUpgradeableErrors { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::UnauthorizedCallContext(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeFailed(element) => ::core::fmt::Display::fmt(element, f), - Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), - } - } - } - impl ::core::convert::From<::std::string::String> for UUPSUpgradeableErrors { - fn from(value: String) -> Self { - Self::RevertString(value) - } - } - impl ::core::convert::From for UUPSUpgradeableErrors { - fn from(value: UnauthorizedCallContext) -> Self { - Self::UnauthorizedCallContext(value) - } - } - impl ::core::convert::From for UUPSUpgradeableErrors { - fn from(value: UpgradeFailed) -> Self { - Self::UpgradeFailed(value) - } - } - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethevent(name = "Upgraded", abi = "Upgraded(address)")] - pub struct UpgradedFilter { - #[ethevent(indexed)] - pub implementation: ::ethers::core::types::Address, - } - ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")] - pub struct ProxiableUUIDCall; - ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")] - pub struct UpgradeToAndCallCall { - pub new_implementation: ::ethers::core::types::Address, - pub data: ::ethers::core::types::Bytes, - } - ///Container type for all of the contract's call - #[derive( - Clone, - ::ethers::contract::EthAbiType, - serde::Serialize, - serde::Deserialize, - Debug, - PartialEq, - Eq, - Hash, - )] - pub enum UUPSUpgradeableCalls { - ProxiableUUID(ProxiableUUIDCall), - UpgradeToAndCall(UpgradeToAndCallCall), - } - impl ::ethers::core::abi::AbiDecode for UUPSUpgradeableCalls { - fn decode( - data: impl AsRef<[u8]>, - ) -> ::core::result::Result { - let data = data.as_ref(); - if let Ok(decoded) = ::decode(data) - { - return Ok(Self::ProxiableUUID(decoded)); - } - if let Ok(decoded) = - ::decode(data) - { - return Ok(Self::UpgradeToAndCall(decoded)); - } - Err(::ethers::core::abi::Error::InvalidData.into()) - } - } - impl ::ethers::core::abi::AbiEncode for UUPSUpgradeableCalls { - fn encode(self) -> Vec { - match self { - Self::ProxiableUUID(element) => ::ethers::core::abi::AbiEncode::encode(element), - Self::UpgradeToAndCall(element) => ::ethers::core::abi::AbiEncode::encode(element), - } - } - } - impl ::core::fmt::Display for UUPSUpgradeableCalls { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - match self { - Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f), - Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f), - } - } - } - impl ::core::convert::From for UUPSUpgradeableCalls { - fn from(value: ProxiableUUIDCall) -> Self { - Self::ProxiableUUID(value) - } - } - impl ::core::convert::From for UUPSUpgradeableCalls { - fn from(value: UpgradeToAndCallCall) -> Self { - Self::UpgradeToAndCall(value) - } - } - ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - pub struct ProxiableUUIDReturn(pub [u8; 32]); -} diff --git a/xmtp_id/src/bindings/web_authn.rs b/xmtp_id/src/bindings/web_authn.rs deleted file mode 100644 index ce6082ec7..000000000 --- a/xmtp_id/src/bindings/web_authn.rs +++ /dev/null @@ -1,119 +0,0 @@ -pub use web_authn::*; -/// This module was auto-generated with ethers-rs Abigen. -/// More information at: -#[allow( - clippy::enum_variant_names, - clippy::too_many_arguments, - clippy::upper_case_acronyms, - clippy::type_complexity, - dead_code, - non_camel_case_types -)] -pub mod web_authn { - #[allow(deprecated)] - fn __abi() -> ::ethers::core::abi::Abi { - ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::None, - functions: ::std::collections::BTreeMap::new(), - events: ::std::collections::BTreeMap::new(), - errors: ::std::collections::BTreeMap::new(), - receive: false, - fallback: false, - } - } - ///The parsed JSON ABI of the contract. - pub static WEBAUTHN_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = - ::ethers::contract::Lazy::new(__abi); - #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`V`7`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`*WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC8\x13\xB5\t\xB9\xBAVn \x03\xA7e\x86\xD4\xE4\xC2\xB2/\xD5\xE4=%yV\x01\xC1\xF3\xBE\x94\xDB\x08\xA8dsolcC\0\x08\x17\x003"; - /// The bytecode of the contract. - pub static WEBAUTHN_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__BYTECODE); - #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xC8\x13\xB5\t\xB9\xBAVn \x03\xA7e\x86\xD4\xE4\xC2\xB2/\xD5\xE4=%yV\x01\xC1\xF3\xBE\x94\xDB\x08\xA8dsolcC\0\x08\x17\x003"; - /// The deployed bytecode of the contract. - pub static WEBAUTHN_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = - ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE); - pub struct WebAuthn(::ethers::contract::Contract); - impl ::core::clone::Clone for WebAuthn { - fn clone(&self) -> Self { - Self(::core::clone::Clone::clone(&self.0)) - } - } - impl ::core::ops::Deref for WebAuthn { - type Target = ::ethers::contract::Contract; - fn deref(&self) -> &Self::Target { - &self.0 - } - } - impl ::core::ops::DerefMut for WebAuthn { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } - } - impl ::core::fmt::Debug for WebAuthn { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - f.debug_tuple(::core::stringify!(WebAuthn)) - .field(&self.address()) - .finish() - } - } - impl WebAuthn { - /// Creates a new contract instance with the specified `ethers` client at - /// `address`. The contract derefs to a `ethers::Contract` object. - pub fn new>( - address: T, - client: ::std::sync::Arc, - ) -> Self { - Self(::ethers::contract::Contract::new( - address.into(), - WEBAUTHN_ABI.clone(), - client, - )) - } - /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. - /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction - /// - /// Notes: - /// - If there are no constructor arguments, you should pass `()` as the argument. - /// - The default poll duration is 7 seconds. - /// - The default number of confirmations is 1 block. - /// - /// - /// # Example - /// - /// Generate contract bindings with `abigen!` and deploy a new contract instance. - /// - /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. - /// - /// ```ignore - /// # async fn deploy(client: ::std::sync::Arc) { - /// abigen!(Greeter, "../greeter.json"); - /// - /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); - /// let msg = greeter_contract.greet().call().await.unwrap(); - /// # } - /// ``` - pub fn deploy( - client: ::std::sync::Arc, - constructor_args: T, - ) -> ::core::result::Result< - ::ethers::contract::builders::ContractDeployer, - ::ethers::contract::ContractError, - > { - let factory = ::ethers::contract::ContractFactory::new( - WEBAUTHN_ABI.clone(), - WEBAUTHN_BYTECODE.clone().into(), - client, - ); - let deployer = factory.deploy(constructor_args)?; - let deployer = ::ethers::contract::ContractDeployer::new(deployer); - Ok(deployer) - } - } - impl From<::ethers::contract::Contract> for WebAuthn { - fn from(contract: ::ethers::contract::Contract) -> Self { - Self::new(contract.address(), contract.client()) - } - } -} diff --git a/xmtp_id/src/erc1271_verifier.rs b/xmtp_id/src/erc1271_verifier.rs new file mode 100644 index 000000000..b7c950f75 --- /dev/null +++ b/xmtp_id/src/erc1271_verifier.rs @@ -0,0 +1,45 @@ +use ethers::types::{Address, BlockNumber, Bytes}; +use ethers::providers::{Http, Middleware, Provider}; +use std::convert::TryFrom; +use std::sync::Arc; +use anyhow::Error; +use ethers::contract::abigen; + +const EIP1271_MAGIC_VALUE: [u8; 4] = [0x16, 0x26, 0xba, 0x7e]; + +abigen!( + ERC1271, + "./abi/ERC1271.json", + derives(serde::Serialize, serde::Deserialize) +); + +pub struct ERC1271Verifier { + pub provider: Arc>, +} + +impl ERC1271Verifier { + pub fn new(url: &str) -> Self { + let provider = Arc::new(Provider::::try_from(url).unwrap()); + Self { provider } + } + + /// Verifies an ERC-1271(https://eips.ethereum.org/EIPS/eip-1271) signature. + /// + /// # Arguments + /// + /// * `wallet_address` - Address of the ERC1271 wallet. + /// * `block_number` - Block number to verify the signature at. + /// * `hash`, `signature` - Inputs to ERC-1271, used for signer verification. + pub async fn is_valid_signature(&self, wallet_address: Address, block_number: BlockNumber, hash: [u8; 32], signature: Bytes) -> Result { + let erc1271 = ERC1271::new(wallet_address, self.provider.clone()); + + let res: [u8; 4] = erc1271 + .is_valid_signature(hash, signature) + .block(block_number) + .call() + .await? + .into(); + + Ok(res == EIP1271_MAGIC_VALUE) + } +} \ No newline at end of file diff --git a/xmtp_id/src/lib.rs b/xmtp_id/src/lib.rs index 5eee16f19..7577629ee 100644 --- a/xmtp_id/src/lib.rs +++ b/xmtp_id/src/lib.rs @@ -1,5 +1,5 @@ pub mod credential_verifier; -pub mod verified_key_package; +pub mod erc1271_verifier; use std::sync::RwLock; diff --git a/xmtp_id/src/verifier.rs b/xmtp_id/src/verifier.rs deleted file mode 100644 index dee72f0f3..000000000 --- a/xmtp_id/src/verifier.rs +++ /dev/null @@ -1,47 +0,0 @@ -use ethers::types::{Address, BlockId, Signature}; -use ethers::providers::{Http, Middleware, Provider}; -use std::convert::TryFrom; -use std::sync::Arc; -use crate::bindings::coinbase_smart_wallet::CoinbaseSmartWallet; -use anyhow::Error; - -const BASE_SEPOLIA_RPC_URL: &str = "https://sepolia.base.org"; -const EIP1271_MAGIC_VALUE: [u8; 4] = [0x16, 0x26, 0xba, 0x7e]; - -pub struct ERC1271Verifier { - pub provider: Arc>, -} - -impl ERC1271Verifier { - pub fn new() -> Self { - let provider = Arc::new(Provider::::try_from(BASE_SEPOLIA_RPC_URL).unwrap()); - Self { provider } - } - - /// Verifies an ERC-1271(https://eips.ethereum.org/EIPS/eip-1271) signature. - /// - /// # Arguments - /// - /// * `hash` - Hash of the message. - /// * `signature` - generated by signing **Replay safe hash**. - /// * `wallet_address` - Address of the ERC1271 wallet. - /// * `block_id` - Block identifier. - pub async fn verify_erc1271_signature(&self, hash: [u8; 32], owner_index: u64, signature: Signature, wallet_address: Address, block_id: BlockId) -> Result { - let wallet = CoinbaseSmartWallet::new(wallet_address, self.provider.clone()); - - // Used during signature validation, tie a signature with its signer. - let signature_wrapper = ethers::abi::encode(&[ethers::abi::Token::Tuple(vec![ - ethers::abi::Token::Uint(ethers::types::U256::from(owner_index)), - ethers::abi::Token::Bytes(signature.to_vec()), - ])]); - - let res: [u8; 4] = wallet - .is_valid_signature(hash, ethers::types::Bytes::from(signature_wrapper)) - .block(block_id) - .call() - .await? - .into(); - - Ok(res == EIP1271_MAGIC_VALUE) - } -} \ No newline at end of file