diff --git a/dist/cli.js b/dist/cli.js index 480b4f1..b1840e6 100644 --- a/dist/cli.js +++ b/dist/cli.js @@ -5492,9 +5492,6 @@ function normalizeValue(type, value) { return value.map((item) => normalizeValue(innerType, item)); } if (type === 'address') { - if (typeof value === 'number') { - return (0, utils_1.padStart)((0, utils_2.numberToBytes)(value), 20); - } if ((0, utils_2.isStrictHexString)(value)) { return (0, utils_1.padStart)((0, utils_2.hexToBytes)(value).subarray(0, 20), 20); } @@ -98536,7 +98533,7 @@ class ContractFactory { ;// ./node_modules/@tornado/contracts/dist/index.mjs -const _abi$1K = [ +const _abi$1Y = [ { inputs: [ { @@ -98641,16 +98638,16 @@ const _abi$1K = [ } ]; class IERC1155Errors__factory { - static abi = _abi$1K; + static abi = _abi$1Y; static createInterface() { - return new Interface(_abi$1K); + return new Interface(_abi$1Y); } static connect(address, runner) { - return new contract_Contract(address, _abi$1K, runner); + return new contract_Contract(address, _abi$1Y, runner); } } -const _abi$1J = [ +const _abi$1X = [ { inputs: [ { @@ -98739,16 +98736,16 @@ const _abi$1J = [ } ]; class IERC20Errors__factory { - static abi = _abi$1J; + static abi = _abi$1X; static createInterface() { - return new Interface(_abi$1J); + return new Interface(_abi$1X); } static connect(address, runner) { - return new contract_Contract(address, _abi$1J, runner); + return new contract_Contract(address, _abi$1X, runner); } } -const _abi$1I = [ +const _abi$1W = [ { inputs: [ { @@ -98854,28 +98851,971 @@ const _abi$1I = [ } ]; class IERC721Errors__factory { - static abi = _abi$1I; + static abi = _abi$1W; static createInterface() { - return new Interface(_abi$1I); + return new Interface(_abi$1W); } static connect(address, runner) { - return new contract_Contract(address, _abi$1I, runner); + return new contract_Contract(address, _abi$1W, runner); } } -var index$T = /*#__PURE__*/Object.freeze({ +var index$X = /*#__PURE__*/Object.freeze({ __proto__: null, IERC1155Errors__factory: IERC1155Errors__factory, IERC20Errors__factory: IERC20Errors__factory, IERC721Errors__factory: IERC721Errors__factory }); -var index$S = /*#__PURE__*/Object.freeze({ +const _abi$1V = [ + { + anonymous: false, + inputs: [], + name: "EIP712DomainChanged", + type: "event" + }, + { + inputs: [], + name: "eip712Domain", + outputs: [ + { + internalType: "bytes1", + name: "fields", + type: "bytes1" + }, + { + internalType: "string", + name: "name", + type: "string" + }, + { + internalType: "string", + name: "version", + type: "string" + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256" + }, + { + internalType: "address", + name: "verifyingContract", + type: "address" + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32" + }, + { + internalType: "uint256[]", + name: "extensions", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + } +]; +class IERC5267__factory { + static abi = _abi$1V; + static createInterface() { + return new Interface(_abi$1V); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1V, runner); + } +} + +var index$W = /*#__PURE__*/Object.freeze({ __proto__: null, - draftIerc6093Sol: index$T + IERC5267__factory: IERC5267__factory, + draftIerc6093Sol: index$X }); -const _abi$1H = [ +const _abi$1U = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256" + }, + { + internalType: "uint256", + name: "needed", + type: "uint256" + } + ], + name: "ERC20InsufficientAllowance", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "uint256", + name: "balance", + type: "uint256" + }, + { + internalType: "uint256", + name: "needed", + type: "uint256" + } + ], + name: "ERC20InsufficientBalance", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address" + } + ], + name: "ERC20InvalidApprover", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + } + ], + name: "ERC20InvalidReceiver", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + } + ], + name: "ERC20InvalidSender", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "ERC20InvalidSpender", + type: "error" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address" + }, + { + internalType: "address", + name: "to", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; +let ERC20Burnable__factory$1 = class ERC20Burnable__factory { + static abi = _abi$1U; + static createInterface() { + return new Interface(_abi$1U); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1U, runner); + } +}; + +const _abi$1T = [ + { + inputs: [], + name: "ECDSAInvalidSignature", + type: "error" + }, + { + inputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256" + } + ], + name: "ECDSAInvalidSignatureLength", + type: "error" + }, + { + inputs: [ + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "ECDSAInvalidSignatureS", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256" + }, + { + internalType: "uint256", + name: "needed", + type: "uint256" + } + ], + name: "ERC20InsufficientAllowance", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "uint256", + name: "balance", + type: "uint256" + }, + { + internalType: "uint256", + name: "needed", + type: "uint256" + } + ], + name: "ERC20InsufficientBalance", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address" + } + ], + name: "ERC20InvalidApprover", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + } + ], + name: "ERC20InvalidReceiver", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + } + ], + name: "ERC20InvalidSender", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "ERC20InvalidSpender", + type: "error" + }, + { + inputs: [ + { + internalType: "uint256", + name: "deadline", + type: "uint256" + } + ], + name: "ERC2612ExpiredSignature", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address" + }, + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "ERC2612InvalidSigner", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + }, + { + internalType: "uint256", + name: "currentNonce", + type: "uint256" + } + ], + name: "InvalidAccountNonce", + type: "error" + }, + { + inputs: [], + name: "InvalidShortString", + type: "error" + }, + { + inputs: [ + { + internalType: "string", + name: "str", + type: "string" + } + ], + name: "StringTooLong", + type: "error" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [], + name: "EIP712DomainChanged", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "eip712Domain", + outputs: [ + { + internalType: "bytes1", + name: "fields", + type: "bytes1" + }, + { + internalType: "string", + name: "name", + type: "string" + }, + { + internalType: "string", + name: "version", + type: "string" + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256" + }, + { + internalType: "address", + name: "verifyingContract", + type: "address" + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32" + }, + { + internalType: "uint256[]", + name: "extensions", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "uint8", + name: "v", + type: "uint8" + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32" + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address" + }, + { + internalType: "address", + name: "to", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; +let ERC20Permit__factory$1 = class ERC20Permit__factory { + static abi = _abi$1T; + static createInterface() { + return new Interface(_abi$1T); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1T, runner); + } +}; + +const _abi$1S = [ { anonymous: false, inputs: [ @@ -99100,21 +100040,111 @@ const _abi$1H = [ } ]; class IERC20Metadata__factory { - static abi = _abi$1H; + static abi = _abi$1S; static createInterface() { - return new Interface(_abi$1H); + return new Interface(_abi$1S); } static connect(address, runner) { - return new contract_Contract(address, _abi$1H, runner); + return new contract_Contract(address, _abi$1S, runner); } } -var index$R = /*#__PURE__*/Object.freeze({ +const _abi$1R = [ + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "uint8", + name: "v", + type: "uint8" + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32" + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function" + } +]; +class IERC20Permit__factory { + static abi = _abi$1R; + static createInterface() { + return new Interface(_abi$1R); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1R, runner); + } +} + +var index$V = /*#__PURE__*/Object.freeze({ __proto__: null, - IERC20Metadata__factory: IERC20Metadata__factory + ERC20Burnable__factory: ERC20Burnable__factory$1, + ERC20Permit__factory: ERC20Permit__factory$1, + IERC20Metadata__factory: IERC20Metadata__factory, + IERC20Permit__factory: IERC20Permit__factory }); -const _abi$1G = [ +const _abi$1Q = [ { inputs: [ { @@ -99425,16 +100455,16 @@ const _abi$1G = [ } ]; let ERC20__factory$1 = class ERC20__factory { - static abi = _abi$1G; + static abi = _abi$1Q; static createInterface() { - return new Interface(_abi$1G); + return new Interface(_abi$1Q); } static connect(address, runner) { - return new contract_Contract(address, _abi$1G, runner); + return new contract_Contract(address, _abi$1Q, runner); } }; -const _abi$1F = [ +const _abi$1P = [ { anonymous: false, inputs: [ @@ -99620,34 +100650,367 @@ const _abi$1F = [ } ]; let IERC20__factory$2 = class IERC20__factory { - static abi = _abi$1F; + static abi = _abi$1P; static createInterface() { - return new Interface(_abi$1F); + return new Interface(_abi$1P); } static connect(address, runner) { - return new contract_Contract(address, _abi$1F, runner); + return new contract_Contract(address, _abi$1P, runner); } }; -var index$Q = /*#__PURE__*/Object.freeze({ +var index$U = /*#__PURE__*/Object.freeze({ __proto__: null, ERC20__factory: ERC20__factory$1, IERC20__factory: IERC20__factory$2, - extensions: index$R + extensions: index$V +}); + +var index$T = /*#__PURE__*/Object.freeze({ + __proto__: null, + erc20: index$U +}); + +const _abi$1O = [ + { + inputs: [], + name: "ECDSAInvalidSignature", + type: "error" + }, + { + inputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256" + } + ], + name: "ECDSAInvalidSignatureLength", + type: "error" + }, + { + inputs: [ + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "ECDSAInvalidSignatureS", + type: "error" + } +]; +const _bytecode$11 = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045318690f3888125255e48382b32b90ae3da72675cabe3bcd6e9478e8383086264736f6c634300081c0033"; +const isSuperArgs$11 = (xs) => xs.length > 1; +class ECDSA__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$11(args)) { + super(...args); + } else { + super(_abi$1O, _bytecode$11, args[0]); + } + } + getDeployTransaction(overrides) { + return super.getDeployTransaction(overrides || {}); + } + deploy(overrides) { + return super.deploy(overrides || {}); + } + connect(runner) { + return super.connect(runner); + } + static bytecode = _bytecode$11; + static abi = _abi$1O; + static createInterface() { + return new Interface(_abi$1O); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1O, runner); + } +} + +const _abi$1N = [ + { + inputs: [], + name: "InvalidShortString", + type: "error" + }, + { + inputs: [ + { + internalType: "string", + name: "str", + type: "string" + } + ], + name: "StringTooLong", + type: "error" + }, + { + anonymous: false, + inputs: [], + name: "EIP712DomainChanged", + type: "event" + }, + { + inputs: [], + name: "eip712Domain", + outputs: [ + { + internalType: "bytes1", + name: "fields", + type: "bytes1" + }, + { + internalType: "string", + name: "name", + type: "string" + }, + { + internalType: "string", + name: "version", + type: "string" + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256" + }, + { + internalType: "address", + name: "verifyingContract", + type: "address" + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32" + }, + { + internalType: "uint256[]", + name: "extensions", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + } +]; +class EIP712__factory { + static abi = _abi$1N; + static createInterface() { + return new Interface(_abi$1N); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1N, runner); + } +} + +var index$S = /*#__PURE__*/Object.freeze({ + __proto__: null, + ECDSA__factory: ECDSA__factory, + EIP712__factory: EIP712__factory +}); + +const _abi$1M = [ + { + inputs: [], + name: "MathOverflowedMulDiv", + type: "error" + } +]; +const _bytecode$10 = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122054710e438b4d818c9886821c7249e64e03942ccb6f261579743c3dd2da7d85c964736f6c634300081c0033"; +const isSuperArgs$10 = (xs) => xs.length > 1; +class Math__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$10(args)) { + super(...args); + } else { + super(_abi$1M, _bytecode$10, args[0]); + } + } + getDeployTransaction(overrides) { + return super.getDeployTransaction(overrides || {}); + } + deploy(overrides) { + return super.deploy(overrides || {}); + } + connect(runner) { + return super.connect(runner); + } + static bytecode = _bytecode$10; + static abi = _abi$1M; + static createInterface() { + return new Interface(_abi$1M); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1M, runner); + } +} + +var index$R = /*#__PURE__*/Object.freeze({ + __proto__: null, + Math__factory: Math__factory +}); + +const _abi$1L = [ + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + }, + { + internalType: "uint256", + name: "currentNonce", + type: "uint256" + } + ], + name: "InvalidAccountNonce", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + } +]; +class Nonces__factory { + static abi = _abi$1L; + static createInterface() { + return new Interface(_abi$1L); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1L, runner); + } +} + +const _abi$1K = [ + { + inputs: [], + name: "InvalidShortString", + type: "error" + }, + { + inputs: [ + { + internalType: "string", + name: "str", + type: "string" + } + ], + name: "StringTooLong", + type: "error" + } +]; +const _bytecode$$ = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a078d04f950e0ca410dd1769613f6ca85ff5970fa2ea088000c56fd336fbcaf64736f6c634300081c0033"; +const isSuperArgs$$ = (xs) => xs.length > 1; +class ShortStrings__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$$(args)) { + super(...args); + } else { + super(_abi$1K, _bytecode$$, args[0]); + } + } + getDeployTransaction(overrides) { + return super.getDeployTransaction(overrides || {}); + } + deploy(overrides) { + return super.deploy(overrides || {}); + } + connect(runner) { + return super.connect(runner); + } + static bytecode = _bytecode$$; + static abi = _abi$1K; + static createInterface() { + return new Interface(_abi$1K); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1K, runner); + } +} + +const _abi$1J = [ + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + }, + { + internalType: "uint256", + name: "length", + type: "uint256" + } + ], + name: "StringsInsufficientHexLength", + type: "error" + } +]; +const _bytecode$_ = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cdd8289a2d34ad06cf0635eabbcac19a2c578b590d1b046b83c091f968f77dd664736f6c634300081c0033"; +const isSuperArgs$_ = (xs) => xs.length > 1; +class Strings__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$_(args)) { + super(...args); + } else { + super(_abi$1J, _bytecode$_, args[0]); + } + } + getDeployTransaction(overrides) { + return super.getDeployTransaction(overrides || {}); + } + deploy(overrides) { + return super.deploy(overrides || {}); + } + connect(runner) { + return super.connect(runner); + } + static bytecode = _bytecode$_; + static abi = _abi$1J; + static createInterface() { + return new Interface(_abi$1J); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1J, runner); + } +} + +var index$Q = /*#__PURE__*/Object.freeze({ + __proto__: null, + Nonces__factory: Nonces__factory, + ShortStrings__factory: ShortStrings__factory, + Strings__factory: Strings__factory, + cryptography: index$S, + math: index$R }); var index$P = /*#__PURE__*/Object.freeze({ __proto__: null, - erc20: index$Q + interfaces: index$W, + token: index$T, + utils: index$Q }); -var index$O = /*#__PURE__*/Object.freeze({ - __proto__: null, - interfaces: index$S, - token: index$P -}); - -const _abi$1E = [ +const _abi$1I = [ { anonymous: false, inputs: [ @@ -99702,21 +101065,21 @@ const _abi$1E = [ } ]; class Ownable__factory { - static abi = _abi$1E; + static abi = _abi$1I; static createInterface() { - return new Interface(_abi$1E); + return new Interface(_abi$1I); } static connect(address, runner) { - return new contract_Contract(address, _abi$1E, runner); + return new contract_Contract(address, _abi$1I, runner); } } -var index$N = /*#__PURE__*/Object.freeze({ +var index$O = /*#__PURE__*/Object.freeze({ __proto__: null, Ownable__factory: Ownable__factory }); -const _abi$1D = [ +const _abi$1H = [ { stateMutability: "payable", type: "fallback" @@ -99727,16 +101090,16 @@ const _abi$1D = [ } ]; class Proxy__factory { - static abi = _abi$1D; + static abi = _abi$1H; static createInterface() { - return new Interface(_abi$1D); + return new Interface(_abi$1H); } static connect(address, runner) { - return new contract_Contract(address, _abi$1D, runner); + return new contract_Contract(address, _abi$1H, runner); } } -const _abi$1C = [ +const _abi$1G = [ { inputs: [ { @@ -99869,14 +101232,14 @@ const _abi$1C = [ type: "receive" } ]; -const _bytecode$X = "0x60806040526040516108dc3803806108dc8339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b81526004018080602001828103825260368152602001806108a66036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063c8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b815260040180806020018281038252603a815260200180610555603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260428152602001806105c56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603681526020018061058f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a26469706673582212200bf5c74f32000c92994fb0de053047d19f9c526eb1b1953df8bcb7d7e0df8d2864736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374"; -const isSuperArgs$X = (xs) => xs.length > 1; +const _bytecode$Z = "0x60806040526040516108dc3803806108dc8339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b81526004018080602001828103825260368152602001806108a66036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063c8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b815260040180806020018281038252603a815260200180610555603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260428152602001806105c56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603681526020018061058f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a26469706673582212200bf5c74f32000c92994fb0de053047d19f9c526eb1b1953df8bcb7d7e0df8d2864736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374"; +const isSuperArgs$Z = (xs) => xs.length > 1; class TransparentUpgradeableProxy__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$X(args)) { + if (isSuperArgs$Z(args)) { super(...args); } else { - super(_abi$1C, _bytecode$X, args[0]); + super(_abi$1G, _bytecode$Z, args[0]); } } getDeployTransaction(_logic, _admin, _data, overrides) { @@ -99888,21 +101251,21 @@ class TransparentUpgradeableProxy__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$X; - static abi = _abi$1C; + static bytecode = _bytecode$Z; + static abi = _abi$1G; static createInterface() { - return new Interface(_abi$1C); + return new Interface(_abi$1G); } static connect(address, runner) { return new contract_Contract( address, - _abi$1C, + _abi$1G, runner ); } } -const _abi$1B = [ +const _abi$1F = [ { inputs: [ { @@ -99941,14 +101304,14 @@ const _abi$1B = [ type: "receive" } ]; -const _bytecode$W = "0x60806040526040516103123803806103128339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b50604052506100e3915050565b6100ec826101ab565b8051156101a4576000826001600160a01b0316826040518082805190602001908083835b6020831061012f5780518252601f199092019160209182019101610110565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461018f576040519150601f19603f3d011682016040523d82523d6000602084013e610194565b606091505b50509050806101a257600080fd5b505b5050610223565b6101be8161021d60201b6100271760201c565b6101f95760405162461bcd60e51b81526004018080602001828103825260368152602001806102dc6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b60ab806102316000396000f3fe608060405236601057600e6013565b005b600e5b60196025565b60256021602d565b6052565b565b3b151590565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156070573d6000f35b3d6000fdfea2646970667358221220621b7042bfb847b4073a3c58bdbea5295ce2e761b4e2307ca010caaac996d80c64736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374"; -const isSuperArgs$W = (xs) => xs.length > 1; +const _bytecode$Y = "0x60806040526040516103123803806103128339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b50604052506100e3915050565b6100ec826101ab565b8051156101a4576000826001600160a01b0316826040518082805190602001908083835b6020831061012f5780518252601f199092019160209182019101610110565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461018f576040519150601f19603f3d011682016040523d82523d6000602084013e610194565b606091505b50509050806101a257600080fd5b505b5050610223565b6101be8161021d60201b6100271760201c565b6101f95760405162461bcd60e51b81526004018080602001828103825260368152602001806102dc6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b60ab806102316000396000f3fe608060405236601057600e6013565b005b600e5b60196025565b60256021602d565b6052565b565b3b151590565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156070573d6000f35b3d6000fdfea2646970667358221220621b7042bfb847b4073a3c58bdbea5295ce2e761b4e2307ca010caaac996d80c64736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374"; +const isSuperArgs$Y = (xs) => xs.length > 1; class UpgradeableProxy__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$W(args)) { + if (isSuperArgs$Y(args)) { super(...args); } else { - super(_abi$1B, _bytecode$W, args[0]); + super(_abi$1F, _bytecode$Y, args[0]); } } getDeployTransaction(_logic, _data, overrides) { @@ -99960,24 +101323,24 @@ class UpgradeableProxy__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$W; - static abi = _abi$1B; + static bytecode = _bytecode$Y; + static abi = _abi$1F; static createInterface() { - return new Interface(_abi$1B); + return new Interface(_abi$1F); } static connect(address, runner) { - return new contract_Contract(address, _abi$1B, runner); + return new contract_Contract(address, _abi$1F, runner); } } -var index$M = /*#__PURE__*/Object.freeze({ +var index$N = /*#__PURE__*/Object.freeze({ __proto__: null, Proxy__factory: Proxy__factory, TransparentUpgradeableProxy__factory: TransparentUpgradeableProxy__factory, UpgradeableProxy__factory: UpgradeableProxy__factory }); -const _abi$1A = [ +const _abi$1E = [ { inputs: [ { @@ -100265,14 +101628,14 @@ const _abi$1A = [ type: "function" } ]; -const _bytecode$V = "0x608060405234801561001057600080fd5b5060405162000c6238038062000c628339818101604052604081101561003557600080fd5b810190808051604051939291908464010000000082111561005557600080fd5b90830190602082018581111561006a57600080fd5b825164010000000081118282018810171561008457600080fd5b82525081516020918201929091019080838360005b838110156100b1578181015183820152602001610099565b50505050905090810190601f1680156100de5780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010157600080fd5b90830190602082018581111561011657600080fd5b825164010000000081118282018810171561013057600080fd5b82525081516020918201929091019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b50604052505082516101a4915060039060208501906101cd565b5080516101b89060049060208401906101cd565b50506005805460ff1916601217905550610260565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061020e57805160ff191683800117855561023b565b8280016001018555821561023b579182015b8281111561023b578251825591602001919060010190610220565b5061024792915061024b565b5090565b5b80821115610247576000815560010161024c565b6109f280620002706000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063395093511161007157806339509351146101d957806370a082311461020557806395d89b411461022b578063a457c2d714610233578063a9059cbb1461025f578063dd62ed3e1461028b576100a9565b806306fdde03146100ae578063095ea7b31461012b57806318160ddd1461016b57806323b872dd14610185578063313ce567146101bb575b600080fd5b6100b66102b9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101576004803603604081101561014157600080fd5b506001600160a01b03813516906020013561034f565b604080519115158252519081900360200190f35b61017361036c565b60408051918252519081900360200190f35b6101576004803603606081101561019b57600080fd5b506001600160a01b03813581169160208101359091169060400135610372565b6101c36103f9565b6040805160ff9092168252519081900360200190f35b610157600480360360408110156101ef57600080fd5b506001600160a01b038135169060200135610402565b6101736004803603602081101561021b57600080fd5b50356001600160a01b0316610450565b6100b661046b565b6101576004803603604081101561024957600080fd5b506001600160a01b0381351690602001356104cc565b6101576004803603604081101561027557600080fd5b506001600160a01b038135169060200135610534565b610173600480360360408110156102a157600080fd5b506001600160a01b0381358116916020013516610548565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b820191906000526020600020905b81548152906001019060200180831161032857829003601f168201915b5050505050905090565b600061036361035c610573565b8484610577565b50600192915050565b60025490565b600061037f848484610663565b6103ef8461038b610573565b6103ea85604051806060016040528060288152602001610927602891396001600160a01b038a166000908152600160205260408120906103c9610573565b6001600160a01b0316815260208101919091526040016000205491906107be565b610577565b5060019392505050565b60055460ff1690565b600061036361040f610573565b846103ea8560016000610420610573565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610855565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b60006103636104d9610573565b846103ea856040518060600160405280602581526020016109986025913960016000610503610573565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906107be565b6000610363610541610573565b8484610663565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166105bc5760405162461bcd60e51b81526004018080602001828103825260248152602001806109746024913960400191505060405180910390fd5b6001600160a01b0382166106015760405162461bcd60e51b81526004018080602001828103825260228152602001806108df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260040180806020018281038252602581526020018061094f6025913960400191505060405180910390fd5b6001600160a01b0382166106ed5760405162461bcd60e51b81526004018080602001828103825260238152602001806108bc6023913960400191505060405180910390fd5b6106f88383836108b6565b61073581604051806060016040528060268152602001610901602691396001600160a01b03861660009081526020819052604090205491906107be565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107649082610855565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561084d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108125781810151838201526020016107fa565b50505050905090810190601f16801561083f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156108af576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220347718b9db0288208ab5957df73278c6f781963df0e13918151971217fc2827964736f6c634300060c0033"; -const isSuperArgs$V = (xs) => xs.length > 1; +const _bytecode$X = "0x608060405234801561001057600080fd5b5060405162000c6238038062000c628339818101604052604081101561003557600080fd5b810190808051604051939291908464010000000082111561005557600080fd5b90830190602082018581111561006a57600080fd5b825164010000000081118282018810171561008457600080fd5b82525081516020918201929091019080838360005b838110156100b1578181015183820152602001610099565b50505050905090810190601f1680156100de5780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010157600080fd5b90830190602082018581111561011657600080fd5b825164010000000081118282018810171561013057600080fd5b82525081516020918201929091019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b50604052505082516101a4915060039060208501906101cd565b5080516101b89060049060208401906101cd565b50506005805460ff1916601217905550610260565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061020e57805160ff191683800117855561023b565b8280016001018555821561023b579182015b8281111561023b578251825591602001919060010190610220565b5061024792915061024b565b5090565b5b80821115610247576000815560010161024c565b6109f280620002706000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063395093511161007157806339509351146101d957806370a082311461020557806395d89b411461022b578063a457c2d714610233578063a9059cbb1461025f578063dd62ed3e1461028b576100a9565b806306fdde03146100ae578063095ea7b31461012b57806318160ddd1461016b57806323b872dd14610185578063313ce567146101bb575b600080fd5b6100b66102b9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101576004803603604081101561014157600080fd5b506001600160a01b03813516906020013561034f565b604080519115158252519081900360200190f35b61017361036c565b60408051918252519081900360200190f35b6101576004803603606081101561019b57600080fd5b506001600160a01b03813581169160208101359091169060400135610372565b6101c36103f9565b6040805160ff9092168252519081900360200190f35b610157600480360360408110156101ef57600080fd5b506001600160a01b038135169060200135610402565b6101736004803603602081101561021b57600080fd5b50356001600160a01b0316610450565b6100b661046b565b6101576004803603604081101561024957600080fd5b506001600160a01b0381351690602001356104cc565b6101576004803603604081101561027557600080fd5b506001600160a01b038135169060200135610534565b610173600480360360408110156102a157600080fd5b506001600160a01b0381358116916020013516610548565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b820191906000526020600020905b81548152906001019060200180831161032857829003601f168201915b5050505050905090565b600061036361035c610573565b8484610577565b50600192915050565b60025490565b600061037f848484610663565b6103ef8461038b610573565b6103ea85604051806060016040528060288152602001610927602891396001600160a01b038a166000908152600160205260408120906103c9610573565b6001600160a01b0316815260208101919091526040016000205491906107be565b610577565b5060019392505050565b60055460ff1690565b600061036361040f610573565b846103ea8560016000610420610573565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610855565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b60006103636104d9610573565b846103ea856040518060600160405280602581526020016109986025913960016000610503610573565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906107be565b6000610363610541610573565b8484610663565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166105bc5760405162461bcd60e51b81526004018080602001828103825260248152602001806109746024913960400191505060405180910390fd5b6001600160a01b0382166106015760405162461bcd60e51b81526004018080602001828103825260228152602001806108df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260040180806020018281038252602581526020018061094f6025913960400191505060405180910390fd5b6001600160a01b0382166106ed5760405162461bcd60e51b81526004018080602001828103825260238152602001806108bc6023913960400191505060405180910390fd5b6106f88383836108b6565b61073581604051806060016040528060268152602001610901602691396001600160a01b03861660009081526020819052604090205491906107be565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107649082610855565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561084d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108125781810151838201526020016107fa565b50505050905090810190601f16801561083f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156108af576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220347718b9db0288208ab5957df73278c6f781963df0e13918151971217fc2827964736f6c634300060c0033"; +const isSuperArgs$X = (xs) => xs.length > 1; class ERC20__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$V(args)) { + if (isSuperArgs$X(args)) { super(...args); } else { - super(_abi$1A, _bytecode$V, args[0]); + super(_abi$1E, _bytecode$X, args[0]); } } getDeployTransaction(name, symbol, overrides) { @@ -100284,17 +101647,17 @@ class ERC20__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$V; - static abi = _abi$1A; + static bytecode = _bytecode$X; + static abi = _abi$1E; static createInterface() { - return new Interface(_abi$1A); + return new Interface(_abi$1E); } static connect(address, runner) { - return new contract_Contract(address, _abi$1A, runner); + return new contract_Contract(address, _abi$1E, runner); } } -const _abi$1z = [ +const _abi$1D = [ { anonymous: false, inputs: [ @@ -100598,16 +101961,16 @@ const _abi$1z = [ } ]; class ERC20Burnable__factory { - static abi = _abi$1z; + static abi = _abi$1D; static createInterface() { - return new Interface(_abi$1z); + return new Interface(_abi$1D); } static connect(address, runner) { - return new contract_Contract(address, _abi$1z, runner); + return new contract_Contract(address, _abi$1D, runner); } } -const _abi$1y = [ +const _abi$1C = [ { anonymous: false, inputs: [ @@ -100793,28 +102156,28 @@ const _abi$1y = [ } ]; let IERC20__factory$1 = class IERC20__factory { - static abi = _abi$1y; + static abi = _abi$1C; static createInterface() { - return new Interface(_abi$1y); + return new Interface(_abi$1C); } static connect(address, runner) { - return new contract_Contract(address, _abi$1y, runner); + return new contract_Contract(address, _abi$1C, runner); } }; -var index$L = /*#__PURE__*/Object.freeze({ +var index$M = /*#__PURE__*/Object.freeze({ __proto__: null, ERC20Burnable__factory: ERC20Burnable__factory, ERC20__factory: ERC20__factory, IERC20__factory: IERC20__factory$1 }); -var index$K = /*#__PURE__*/Object.freeze({ +var index$L = /*#__PURE__*/Object.freeze({ __proto__: null, - erc20: index$L + erc20: index$M }); -const _abi$1x = [ +const _abi$1B = [ { anonymous: false, inputs: [ @@ -100856,35 +102219,35 @@ const _abi$1x = [ } ]; class Pausable__factory { - static abi = _abi$1x; + static abi = _abi$1B; static createInterface() { - return new Interface(_abi$1x); + return new Interface(_abi$1B); } static connect(address, runner) { - return new contract_Contract(address, _abi$1x, runner); + return new contract_Contract(address, _abi$1B, runner); } } -var index$J = /*#__PURE__*/Object.freeze({ +var index$K = /*#__PURE__*/Object.freeze({ __proto__: null, Pausable__factory: Pausable__factory }); +var index$J = /*#__PURE__*/Object.freeze({ + __proto__: null, + access: index$O, + proxy: index$N, + token: index$L, + utils: index$K +}); + var index$I = /*#__PURE__*/Object.freeze({ __proto__: null, - access: index$N, - proxy: index$M, - token: index$K, - utils: index$J + contracts: index$P, + contractsV3: index$J }); -var index$H = /*#__PURE__*/Object.freeze({ - __proto__: null, - contracts: index$O, - contractsV3: index$I -}); - -const _abi$1w = [ +const _abi$1A = [ { inputs: [ { @@ -100916,16 +102279,16 @@ const _abi$1w = [ } ]; class IHasher__factory { - static abi = _abi$1w; + static abi = _abi$1A; static createInterface() { - return new Interface(_abi$1w); + return new Interface(_abi$1A); } static connect(address, runner) { - return new contract_Contract(address, _abi$1w, runner); + return new contract_Contract(address, _abi$1A, runner); } } -const _abi$1v = [ +const _abi$1z = [ { inputs: [ { @@ -101152,14 +102515,14 @@ const _abi$1v = [ type: "function" } ]; -const _bytecode$U = "0x60c0604052600380546001600160401b031916905534801561002057600080fd5b50604051610a10380380610a1083398101604081905261003f91610385565b60008263ffffffff16116100a65760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106100fc5760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015260640161009d565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101845763ffffffff8116600090815260016020908152604080832085905590829052902082905561017a8383806101b8565b9150600101610137565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55506103f89050565b60006000805160206109f083398151915283106102175760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161009d565b6000805160206109f0833981519152821061027e5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161009d565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906103d4565b90925090506000805160206109f083398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037a91906103d4565b509695505050505050565b6000806040838503121561039857600080fd5b825163ffffffff811681146103ac57600080fd5b60208401519092506001600160a01b03811681146103c957600080fd5b809150509250929050565b600080604083850312156103e757600080fd5b505080516020909101519092909150565b60805160a0516105d361041d60003960006101010152600061020f01526105d36000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c2b40ae41161008c578063ec73295911610066578063ec732959146101e3578063ed33639f1461020a578063f178e47c14610249578063fc7e9c6f1461026957600080fd5b8063c2b40ae41461019b578063cd87a3b4146101bb578063e8295588146101c357600080fd5b8063414a37ba146100d45780634ecf518b146100fc5780636d9833e3146101385780638ea3099e1461015b57806390eeb02b1461016e578063ba70f7571461017e575b600080fd5b6100e960008051602061057e83398151915281565b6040519081526020015b60405180910390f35b6101237f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100f3565b61014b6101463660046104d1565b610281565b60405190151581526020016100f3565b6100e96101693660046104ea565b6102ff565b6003546101239063ffffffff1681565b60035463ffffffff166000908152600260205260409020546100e9565b6100e96101a93660046104d1565b60026020526000908152604090205481565b610123601e81565b6100e96101d13660046104d1565b60016020526000908152604090205481565b6100e97f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b6102317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b6100e96102573660046104d1565b60006020819052908152604090205481565b60035461012390640100000000900463ffffffff1681565b600081810361029257506000919050565b60035463ffffffff16805b63ffffffff811660009081526002602052604090205484036102c3575060019392505050565b8063ffffffff166000036102d55750601e5b806102df8161052b565b9150508163ffffffff168163ffffffff160361029d575060009392505050565b600060008051602061057e83398151915283106103635760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b60008051602061057e83398151915282106103ca5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161035a565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190610559565b909250905060008051602061057e83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c69190610559565b509695505050505050565b6000602082840312156104e357600080fd5b5035919050565b6000806000606084860312156104ff57600080fd5b83356001600160a01b038116811461051657600080fd5b95602085013595506040909401359392505050565b600063ffffffff82168061054f57634e487b7160e01b600052601160045260246000fd5b6000190192915050565b6000806040838503121561056c57600080fd5b50508051602090910151909290915056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220f11e23d9109ed5a17bac47fbd258c25bee376ed054e1d1f4c83e9dd46ebf2e1264736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$U = (xs) => xs.length > 1; +const _bytecode$W = "0x60c0604052600380546001600160401b031916905534801561002057600080fd5b50604051610a10380380610a1083398101604081905261003f91610385565b60008263ffffffff16116100a65760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106100fc5760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015260640161009d565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101845763ffffffff8116600090815260016020908152604080832085905590829052902082905561017a8383806101b8565b9150600101610137565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55506103f89050565b60006000805160206109f083398151915283106102175760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161009d565b6000805160206109f0833981519152821061027e5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161009d565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906103d4565b90925090506000805160206109f083398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037a91906103d4565b509695505050505050565b6000806040838503121561039857600080fd5b825163ffffffff811681146103ac57600080fd5b60208401519092506001600160a01b03811681146103c957600080fd5b809150509250929050565b600080604083850312156103e757600080fd5b505080516020909101519092909150565b60805160a0516105d361041d60003960006101010152600061020f01526105d36000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063c2b40ae41161008c578063ec73295911610066578063ec732959146101e3578063ed33639f1461020a578063f178e47c14610249578063fc7e9c6f1461026957600080fd5b8063c2b40ae41461019b578063cd87a3b4146101bb578063e8295588146101c357600080fd5b8063414a37ba146100d45780634ecf518b146100fc5780636d9833e3146101385780638ea3099e1461015b57806390eeb02b1461016e578063ba70f7571461017e575b600080fd5b6100e960008051602061057e83398151915281565b6040519081526020015b60405180910390f35b6101237f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100f3565b61014b6101463660046104d1565b610281565b60405190151581526020016100f3565b6100e96101693660046104ea565b6102ff565b6003546101239063ffffffff1681565b60035463ffffffff166000908152600260205260409020546100e9565b6100e96101a93660046104d1565b60026020526000908152604090205481565b610123601e81565b6100e96101d13660046104d1565b60016020526000908152604090205481565b6100e97f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b6102317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100f3565b6100e96102573660046104d1565b60006020819052908152604090205481565b60035461012390640100000000900463ffffffff1681565b600081810361029257506000919050565b60035463ffffffff16805b63ffffffff811660009081526002602052604090205484036102c3575060019392505050565b8063ffffffff166000036102d55750601e5b806102df8161052b565b9150508163ffffffff168163ffffffff160361029d575060009392505050565b600060008051602061057e83398151915283106103635760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b60008051602061057e83398151915282106103ca5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161035a565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d9190610559565b909250905060008051602061057e83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c69190610559565b509695505050505050565b6000602082840312156104e357600080fd5b5035919050565b6000806000606084860312156104ff57600080fd5b83356001600160a01b038116811461051657600080fd5b95602085013595506040909401359392505050565b600063ffffffff82168061054f57634e487b7160e01b600052601160045260246000fd5b6000190192915050565b6000806040838503121561056c57600080fd5b50508051602090910151909290915056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220f11e23d9109ed5a17bac47fbd258c25bee376ed054e1d1f4c83e9dd46ebf2e1264736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$W = (xs) => xs.length > 1; class MerkleTreeWithHistory__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$U(args)) { + if (isSuperArgs$W(args)) { super(...args); } else { - super(_abi$1v, _bytecode$U, args[0]); + super(_abi$1z, _bytecode$W, args[0]); } } getDeployTransaction(_levels, _hasher, overrides) { @@ -101171,27 +102534,27 @@ class MerkleTreeWithHistory__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$U; - static abi = _abi$1v; + static bytecode = _bytecode$W; + static abi = _abi$1z; static createInterface() { - return new Interface(_abi$1v); + return new Interface(_abi$1z); } static connect(address, runner) { return new contract_Contract( address, - _abi$1v, + _abi$1z, runner ); } } -var index$G = /*#__PURE__*/Object.freeze({ +var index$H = /*#__PURE__*/Object.freeze({ __proto__: null, IHasher__factory: IHasher__factory, MerkleTreeWithHistory__factory: MerkleTreeWithHistory__factory }); -const _abi$1u = [ +const _abi$1y = [ { anonymous: false, inputs: [ @@ -101282,16 +102645,16 @@ const _abi$1u = [ } ]; class ERC20Basic__factory { - static abi = _abi$1u; + static abi = _abi$1y; static createInterface() { - return new Interface(_abi$1u); + return new Interface(_abi$1y); } static connect(address, runner) { - return new contract_Contract(address, _abi$1u, runner); + return new contract_Contract(address, _abi$1y, runner); } } -const _abi$1t = [ +const _abi$1x = [ { anonymous: false, inputs: [ @@ -101472,35 +102835,35 @@ const _abi$1t = [ } ]; class IUSDT__factory { - static abi = _abi$1t; + static abi = _abi$1x; static createInterface() { - return new Interface(_abi$1t); + return new Interface(_abi$1x); } static connect(address, runner) { - return new contract_Contract(address, _abi$1t, runner); + return new contract_Contract(address, _abi$1x, runner); } } -var index$F = /*#__PURE__*/Object.freeze({ +var index$G = /*#__PURE__*/Object.freeze({ __proto__: null, ERC20Basic__factory: ERC20Basic__factory, IUSDT__factory: IUSDT__factory }); -const _abi$1s = [ +const _abi$1w = [ { stateMutability: "nonpayable", type: "fallback" } ]; -const _bytecode$T = "0x6080604052348015600f57600080fd5b50609c80601d6000396000f3fe6080604052348015600f57600080fd5b5060405162461bcd60e51b815260206004820152602160248201527f7468697320636f6e747261637420646f6573206e6f74206163636570742045546044820152600960fb1b606482015260840160405180910390fdfea2646970667358221220e3ea6c7cc6115518097ca37048fbc2dbf908554443ac49cb9f0f128dbca7c44e64736f6c634300081c0033"; -const isSuperArgs$T = (xs) => xs.length > 1; +const _bytecode$V = "0x6080604052348015600f57600080fd5b50609c80601d6000396000f3fe6080604052348015600f57600080fd5b5060405162461bcd60e51b815260206004820152602160248201527f7468697320636f6e747261637420646f6573206e6f74206163636570742045546044820152600960fb1b606482015260840160405180910390fdfea2646970667358221220e3ea6c7cc6115518097ca37048fbc2dbf908554443ac49cb9f0f128dbca7c44e64736f6c634300081c0033"; +const isSuperArgs$V = (xs) => xs.length > 1; class BadRecipient__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$T(args)) { + if (isSuperArgs$V(args)) { super(...args); } else { - super(_abi$1s, _bytecode$T, args[0]); + super(_abi$1w, _bytecode$V, args[0]); } } getDeployTransaction(overrides) { @@ -101512,17 +102875,44 @@ class BadRecipient__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$T; - static abi = _abi$1s; + static bytecode = _bytecode$V; + static abi = _abi$1w; static createInterface() { - return new Interface(_abi$1s); + return new Interface(_abi$1w); } static connect(address, runner) { - return new contract_Contract(address, _abi$1s, runner); + return new contract_Contract(address, _abi$1w, runner); } } -const _abi$1r = [ +const _abi$1v = [ + { + inputs: [], + name: "ECDSAInvalidSignature", + type: "error" + }, + { + inputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256" + } + ], + name: "ECDSAInvalidSignatureLength", + type: "error" + }, + { + inputs: [ + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "ECDSAInvalidSignatureS", + type: "error" + }, { inputs: [ { @@ -101609,6 +102999,65 @@ const _abi$1r = [ name: "ERC20InvalidSpender", type: "error" }, + { + inputs: [ + { + internalType: "uint256", + name: "deadline", + type: "uint256" + } + ], + name: "ERC2612ExpiredSignature", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "signer", + type: "address" + }, + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "ERC2612InvalidSigner", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + }, + { + internalType: "uint256", + name: "currentNonce", + type: "uint256" + } + ], + name: "InvalidAccountNonce", + type: "error" + }, + { + inputs: [], + name: "InvalidShortString", + type: "error" + }, + { + inputs: [ + { + internalType: "string", + name: "str", + type: "string" + } + ], + name: "StringTooLong", + type: "error" + }, { anonymous: false, inputs: [ @@ -101634,6 +103083,12 @@ const _abi$1r = [ name: "Approval", type: "event" }, + { + anonymous: false, + inputs: [], + name: "EIP712DomainChanged", + type: "event" + }, { anonymous: false, inputs: [ @@ -101659,6 +103114,19 @@ const _abi$1r = [ name: "Transfer", type: "event" }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -101726,6 +103194,37 @@ const _abi$1r = [ stateMutability: "view", type: "function" }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, { inputs: [], name: "decimals", @@ -101739,6 +103238,49 @@ const _abi$1r = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "eip712Domain", + outputs: [ + { + internalType: "bytes1", + name: "fields", + type: "bytes1" + }, + { + internalType: "string", + name: "name", + type: "string" + }, + { + internalType: "string", + name: "version", + type: "string" + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256" + }, + { + internalType: "address", + name: "verifyingContract", + type: "address" + }, + { + internalType: "bytes32", + name: "salt", + type: "bytes32" + }, + { + internalType: "uint256[]", + name: "extensions", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -101770,6 +103312,68 @@ const _abi$1r = [ stateMutability: "view", type: "function" }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "value", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "uint8", + name: "v", + type: "uint8" + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32" + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, { inputs: [], name: "symbol", @@ -101850,14 +103454,14 @@ const _abi$1r = [ type: "function" } ]; -const _bytecode$S = "0x608060405234801561001057600080fd5b50604051806040016040528060078152602001664441494d6f636b60c81b815250604051806040016040528060048152602001634441494d60e01b815250816003908161005d9190610111565b50600461006a8282610111565b5050506101cf565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009c57607f821691505b6020821081036100bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010c57806000526020600020601f840160051c810160208510156100e95750805b601f840160051c820191505b8181101561010957600081556001016100f5565b50505b505050565b81516001600160401b0381111561012a5761012a610072565b61013e816101388454610088565b846100c2565b6020601f821160018114610172576000831561015a5750848201515b600019600385901b1c1916600184901b178455610109565b600084815260208120601f198516915b828110156101a25787850151825560209485019460019092019101610182565b50848210156101c05786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610785806101de6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461011857806370a082311461012d57806395d89b4114610156578063a9059cbb1461015e578063dd62ed3e1461017157600080fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100f6578063313ce56714610109575b600080fd5b6100ab6101aa565b6040516100b891906105ce565b60405180910390f35b6100d46100cf366004610638565b61023c565b60405190151581526020016100b8565b6002545b6040519081526020016100b8565b6100d4610104366004610662565b610256565b604051601281526020016100b8565b61012b610126366004610638565b61027a565b005b6100e861013b36600461069f565b6001600160a01b031660009081526020819052604090205490565b6100ab610288565b6100d461016c366004610638565b610297565b6100e861017f3660046106c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101b9906106f4565b80601f01602080910402602001604051908101604052809291908181526020018280546101e5906106f4565b80156102325780601f1061020757610100808354040283529160200191610232565b820191906000526020600020905b81548152906001019060200180831161021557829003601f168201915b5050505050905090565b60003361024a8185856102a5565b60019150505b92915050565b6000336102648582856102b7565b61026f85858561033a565b506001949350505050565b6102848282610399565b5050565b6060600480546101b9906106f4565b60003361024a81858561033a565b6102b283838360016103cf565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610334578181101561032557604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b610334848484840360006103cf565b50505050565b6001600160a01b03831661036457604051634b637e8f60e11b81526000600482015260240161031c565b6001600160a01b03821661038e5760405163ec442f0560e01b81526000600482015260240161031c565b6102b28383836104a4565b6001600160a01b0382166103c35760405163ec442f0560e01b81526000600482015260240161031c565b610284600083836104a4565b6001600160a01b0384166103f95760405163e602df0560e01b81526000600482015260240161031c565b6001600160a01b03831661042357604051634a1406b160e11b81526000600482015260240161031c565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561033457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161049691815260200190565b60405180910390a350505050565b6001600160a01b0383166104cf5780600260008282546104c4919061072e565b909155506105419050565b6001600160a01b038316600090815260208190526040902054818110156105225760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161031c565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661055d5760028054829003905561057c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105c191815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156105fc57602081860181015160408684010152016105df565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461063357600080fd5b919050565b6000806040838503121561064b57600080fd5b6106548361061c565b946020939093013593505050565b60008060006060848603121561067757600080fd5b6106808461061c565b925061068e6020850161061c565b929592945050506040919091013590565b6000602082840312156106b157600080fd5b6106ba8261061c565b9392505050565b600080604083850312156106d457600080fd5b6106dd8361061c565b91506106eb6020840161061c565b90509250929050565b600181811c9082168061070857607f821691505b60208210810361072857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561025057634e487b7160e01b600052601160045260246000fdfea2646970667358221220df85cece2633b7b39a7e3c92023521dbd4a76129843a0efc262b8e208f146bdf64736f6c634300081c0033"; -const isSuperArgs$S = (xs) => xs.length > 1; +const _bytecode$U = "0x61016060405234801561001157600080fd5b50604051806040016040528060078152602001664441494d6f636b60c81b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060078152602001664441494d6f636b60c81b815250604051806040016040528060048152602001634441494d60e01b8152508160039081610099919061027a565b5060046100a6828261027a565b506100b691508390506005610161565b610120526100c5816006610161565b61014052815160208084019190912060e052815190820120610100524660a05261015260e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506103aa565b600060208351101561017d5761017683610194565b905061018e565b81610188848261027a565b5060ff90505b92915050565b600080829050601f815111156101c8578260405163305a27a960e01b81526004016101bf9190610338565b60405180910390fd5b80516101d382610386565b179392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061020557607f821691505b60208210810361022557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561027557806000526020600020601f840160051c810160208510156102525750805b601f840160051c820191505b81811015610272576000815560010161025e565b50505b505050565b81516001600160401b03811115610293576102936101db565b6102a7816102a184546101f1565b8461022b565b6020601f8211600181146102db57600083156102c35750848201515b600019600385901b1c1916600184901b178455610272565b600084815260208120601f198516915b8281101561030b57878501518255602094850194600190920191016102eb565b50848210156103295786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156103665760208186018101516040868401015201610349565b506000604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102255760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161101a6104046000396000610804015260006107d701526000610713015260006106eb01526000610646015260006106700152600061069a015261101a6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a082311161009757806395d89b411161006657806395d89b4114610214578063a9059cbb1461021c578063d505accf1461022f578063dd62ed3e1461024257600080fd5b806370a08231146101aa57806379cc6790146101d35780637ecebe00146101e657806384b0196e146101f957600080fd5b8063313ce567116100d3578063313ce5671461016b5780633644e5151461017a57806340c10f191461018257806342966c681461019757600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d61027b565b60405161011a9190610d64565b60405180910390f35b610136610131366004610d9a565b61030d565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610136610166366004610dc4565b610327565b6040516012815260200161011a565b61014a61034b565b610195610190366004610d9a565b61035a565b005b6101956101a5366004610e01565b610368565b61014a6101b8366004610e1a565b6001600160a01b031660009081526020819052604090205490565b6101956101e1366004610d9a565b610375565b61014a6101f4366004610e1a565b61038a565b6102016103a8565b60405161011a9796959493929190610e35565b61010d6103ee565b61013661022a366004610d9a565b6103fd565b61019561023d366004610ecd565b61040b565b61014a610250366004610f40565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461028a90610f73565b80601f01602080910402602001604051908101604052809291908181526020018280546102b690610f73565b80156103035780601f106102d857610100808354040283529160200191610303565b820191906000526020600020905b8154815290600101906020018083116102e657829003601f168201915b5050505050905090565b60003361031b81858561054a565b60019150505b92915050565b60003361033585828561055c565b6103408585856105da565b506001949350505050565b6000610355610639565b905090565b6103648282610764565b5050565b610372338261079a565b50565b61038082338361055c565b610364828261079a565b6001600160a01b038116600090815260076020526040812054610321565b6000606080600080600060606103bc6107d0565b6103c46107fd565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606004805461028a90610f73565b60003361031b8185856105da565b834211156104345760405163313c898160e11b8152600481018590526024015b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886104818c6001600160a01b0316600090815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006104dc8261082a565b905060006104ec82878787610857565b9050896001600160a01b0316816001600160a01b031614610533576040516325c0072360e11b81526001600160a01b0380831660048301528b16602482015260440161042b565b61053e8a8a8a61054a565b50505050505050505050565b6105578383836001610885565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105d457818110156105c557604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161042b565b6105d484848484036000610885565b50505050565b6001600160a01b03831661060457604051634b637e8f60e11b81526000600482015260240161042b565b6001600160a01b03821661062e5760405163ec442f0560e01b81526000600482015260240161042b565b61055783838361095a565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561069257507f000000000000000000000000000000000000000000000000000000000000000046145b156106bc57507f000000000000000000000000000000000000000000000000000000000000000090565b610355604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6001600160a01b03821661078e5760405163ec442f0560e01b81526000600482015260240161042b565b6103646000838361095a565b6001600160a01b0382166107c457604051634b637e8f60e11b81526000600482015260240161042b565b6103648260008361095a565b60606103557f00000000000000000000000000000000000000000000000000000000000000006005610a84565b60606103557f00000000000000000000000000000000000000000000000000000000000000006006610a84565b6000610321610837610639565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061086988888888610b2f565b9250925092506108798282610bfe565b50909695505050505050565b6001600160a01b0384166108af5760405163e602df0560e01b81526000600482015260240161042b565b6001600160a01b0383166108d957604051634a1406b160e11b81526000600482015260240161042b565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156105d457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094c91815260200190565b60405180910390a350505050565b6001600160a01b03831661098557806002600082825461097a9190610fad565b909155506109f79050565b6001600160a01b038316600090815260208190526040902054818110156109d85760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161042b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610a1357600280548290039055610a32565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a7791815260200190565b60405180910390a3505050565b606060ff8314610a9e57610a9783610cb7565b9050610321565b818054610aaa90610f73565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad690610f73565b8015610b235780601f10610af857610100808354040283529160200191610b23565b820191906000526020600020905b815481529060010190602001808311610b0657829003601f168201915b50505050509050610321565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610b6a5750600091506003905082610bf4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610bbe573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bea57506000925060019150829050610bf4565b9250600091508190505b9450945094915050565b6000826003811115610c1257610c12610fce565b03610c1b575050565b6001826003811115610c2f57610c2f610fce565b03610c4d5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610c6157610c61610fce565b03610c825760405163fce698f760e01b81526004810182905260240161042b565b6003826003811115610c9657610c96610fce565b03610364576040516335e2f38360e21b81526004810182905260240161042b565b60606000610cc483610cf6565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f81111561032157604051632cd44ac360e21b815260040160405180910390fd5b6000815180845260005b81811015610d4457602081850181015186830182015201610d28565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d776020830184610d1e565b9392505050565b80356001600160a01b0381168114610d9557600080fd5b919050565b60008060408385031215610dad57600080fd5b610db683610d7e565b946020939093013593505050565b600080600060608486031215610dd957600080fd5b610de284610d7e565b9250610df060208501610d7e565b929592945050506040919091013590565b600060208284031215610e1357600080fd5b5035919050565b600060208284031215610e2c57600080fd5b610d7782610d7e565b60ff60f81b8816815260e060208201526000610e5460e0830189610d1e565b8281036040840152610e668189610d1e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015610ebc578351835260209384019390920191600101610e9e565b50909b9a5050505050505050505050565b600080600080600080600060e0888a031215610ee857600080fd5b610ef188610d7e565b9650610eff60208901610d7e565b95506040880135945060608801359350608088013560ff81168114610f2357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610f5357600080fd5b610f5c83610d7e565b9150610f6a60208401610d7e565b90509250929050565b600181811c90821680610f8757607f821691505b602082108103610fa757634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561032157634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220e576ea72175cad97303c16106a449691832d2c19ed98a87d7dad19549b0d754564736f6c634300081c0033"; +const isSuperArgs$U = (xs) => xs.length > 1; class ERC20Mock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$S(args)) { + if (isSuperArgs$U(args)) { super(...args); } else { - super(_abi$1r, _bytecode$S, args[0]); + super(_abi$1v, _bytecode$U, args[0]); } } getDeployTransaction(overrides) { @@ -101869,17 +103473,17 @@ class ERC20Mock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$S; - static abi = _abi$1r; + static bytecode = _bytecode$U; + static abi = _abi$1v; static createInterface() { - return new Interface(_abi$1r); + return new Interface(_abi$1v); } static connect(address, runner) { - return new contract_Contract(address, _abi$1r, runner); + return new contract_Contract(address, _abi$1v, runner); } } -const _abi$1q = [ +const _abi$1u = [ { inputs: [ { @@ -101906,16 +103510,16 @@ const _abi$1q = [ } ]; let IDeployer__factory$1 = class IDeployer__factory { - static abi = _abi$1q; + static abi = _abi$1u; static createInterface() { - return new Interface(_abi$1q); + return new Interface(_abi$1u); } static connect(address, runner) { - return new contract_Contract(address, _abi$1q, runner); + return new contract_Contract(address, _abi$1u, runner); } }; -const _abi$1p = [ +const _abi$1t = [ { inputs: [ { @@ -102155,14 +103759,14 @@ const _abi$1p = [ type: "function" } ]; -const _bytecode$R = "0x60c0604052600380546001600160401b031916905534801561002057600080fd5b50604051610e43380380610e4383398101604081905261003f91610389565b818160008263ffffffff16116100a85760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106100fe5760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015260640161009f565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101865763ffffffff8116600090815260016020908152604080832085905590829052902082905561017c8383806101bc565b9150600101610139565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55506103fc92505050565b6000600080516020610e23833981519152831061021b5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161009f565b600080516020610e2383398151915282106102825760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161009f565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156102d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f591906103d8565b9092509050600080516020610e2383398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa15801561035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037e91906103d8565b509695505050505050565b6000806040838503121561039c57600080fd5b825163ffffffff811681146103b057600080fd5b60208401519092506001600160a01b03811681146103cd57600080fd5b809150509250929050565b600080604083850312156103eb57600080fd5b505080516020909101519092909150565b60805160a0516109ed610436600039600081816101310152818161052701526105c901526000818161023f015261066101526109ed6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063c2b40ae41161008c578063ec73295911610066578063ec73295914610213578063ed33639f1461023a578063f178e47c14610279578063fc7e9c6f1461029957600080fd5b8063c2b40ae4146101cb578063cd87a3b4146101eb578063e8295588146101f357600080fd5b80636d9833e3116100c85780636d9833e3146101685780638ea3099e1461018b57806390eeb02b1461019e578063ba70f757146101ae57600080fd5b80632d287e43146100ef578063414a37ba146101045780634ecf518b1461012c575b600080fd5b6101026100fd36600461072c565b6102b1565b005b61011960008051602061099883398151915281565b6040519081526020015b60405180910390f35b6101537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610123565b61017b61017636600461072c565b6102be565b6040519015158152602001610123565b610119610199366004610745565b61033c565b6003546101539063ffffffff1681565b60035463ffffffff16600090815260026020526040902054610119565b6101196101d936600461072c565b60026020526000908152604090205481565b610153601e81565b61011961020136600461072c565b60016020526000908152604090205481565b6101197f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b6102617f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610123565b61011961028736600461072c565b60006020819052908152604090205481565b60035461015390640100000000900463ffffffff1681565b6102ba8161050e565b5050565b60008181036102cf57506000919050565b60035463ffffffff16805b63ffffffff81166000908152600260205260409020548403610300575060019392505050565b8063ffffffff166000036103125750601e5b8061031c8161079c565b9150508163ffffffff168163ffffffff16036102da575060009392505050565b600060008051602061099883398151915283106103a05760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b60008051602061099883398151915282106104075760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610397565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047a91906107bc565b909250905060008051602061099883398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050391906107bc565b509695505050505050565b600354600090640100000000900463ffffffff1661054d7f0000000000000000000000000000000000000000000000000000000000000000600261090c565b63ffffffff168163ffffffff16036105c05760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610397565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561069e5761060660028661092b565b63ffffffff166000036106405763ffffffff811660009081526001602090815260408083205491839052909120859055849350915061065c565b63ffffffff811660009081526020819052604090205492508391505b6106877f0000000000000000000000000000000000000000000000000000000000000000848461033c565b9350610694600286610953565b94506001016105c7565b50600354600090601e906106b99063ffffffff16600161097b565b6106c3919061092b565b6003805463ffffffff191663ffffffff8316908117909155600090815260026020526040902085905590506106f986600161097b565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b60006020828403121561073e57600080fd5b5035919050565b60008060006060848603121561075a57600080fd5b83356001600160a01b038116811461077157600080fd5b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806107b2576107b2610786565b6000190192915050565b600080604083850312156107cf57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b6001815b60018411156108315780850481111561081557610815610786565b600184161561082357908102905b60019390931c9280026107fa565b935093915050565b60008261084857506001610906565b8161085557506000610906565b816001811461086b5760028114610875576108a6565b6001915050610906565b60ff84111561088657610886610786565b6001841b915063ffffffff8211156108a0576108a0610786565b50610906565b5060208310610133831016604e8410600b84101617156108dd575081810a63ffffffff8111156108d8576108d8610786565b610906565b6108ec63ffffffff84846107f6565b8063ffffffff0482111561090257610902610786565b0290505b92915050565b600061092463ffffffff841663ffffffff8416610839565b9392505050565b600063ffffffff831680610941576109416107e0565b8063ffffffff84160691505092915050565b600063ffffffff831680610969576109696107e0565b8063ffffffff84160491505092915050565b63ffffffff81811683821601908111156109065761090661078656fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220d4af2da17834eee5c4dc18614acb3b0fdfdd29ac766eb65a8d0826d4773a4afb64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$R = (xs) => xs.length > 1; +const _bytecode$T = "0x60c0604052600380546001600160401b031916905534801561002057600080fd5b50604051610e43380380610e4383398101604081905261003f91610389565b818160008263ffffffff16116100a85760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106100fe5760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e2033320000604482015260640161009f565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101865763ffffffff8116600090815260016020908152604080832085905590829052902082905561017c8383806101bc565b9150600101610139565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55506103fc92505050565b6000600080516020610e23833981519152831061021b5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161009f565b600080516020610e2383398151915282106102825760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161009f565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156102d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f591906103d8565b9092509050600080516020610e2383398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa15801561035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037e91906103d8565b509695505050505050565b6000806040838503121561039c57600080fd5b825163ffffffff811681146103b057600080fd5b60208401519092506001600160a01b03811681146103cd57600080fd5b809150509250929050565b600080604083850312156103eb57600080fd5b505080516020909101519092909150565b60805160a0516109ed610436600039600081816101310152818161052701526105c901526000818161023f015261066101526109ed6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063c2b40ae41161008c578063ec73295911610066578063ec73295914610213578063ed33639f1461023a578063f178e47c14610279578063fc7e9c6f1461029957600080fd5b8063c2b40ae4146101cb578063cd87a3b4146101eb578063e8295588146101f357600080fd5b80636d9833e3116100c85780636d9833e3146101685780638ea3099e1461018b57806390eeb02b1461019e578063ba70f757146101ae57600080fd5b80632d287e43146100ef578063414a37ba146101045780634ecf518b1461012c575b600080fd5b6101026100fd36600461072c565b6102b1565b005b61011960008051602061099883398151915281565b6040519081526020015b60405180910390f35b6101537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610123565b61017b61017636600461072c565b6102be565b6040519015158152602001610123565b610119610199366004610745565b61033c565b6003546101539063ffffffff1681565b60035463ffffffff16600090815260026020526040902054610119565b6101196101d936600461072c565b60026020526000908152604090205481565b610153601e81565b61011961020136600461072c565b60016020526000908152604090205481565b6101197f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b6102617f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610123565b61011961028736600461072c565b60006020819052908152604090205481565b60035461015390640100000000900463ffffffff1681565b6102ba8161050e565b5050565b60008181036102cf57506000919050565b60035463ffffffff16805b63ffffffff81166000908152600260205260409020548403610300575060019392505050565b8063ffffffff166000036103125750601e5b8061031c8161079c565b9150508163ffffffff168163ffffffff16036102da575060009392505050565b600060008051602061099883398151915283106103a05760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b60008051602061099883398151915282106104075760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610397565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047a91906107bc565b909250905060008051602061099883398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050391906107bc565b509695505050505050565b600354600090640100000000900463ffffffff1661054d7f0000000000000000000000000000000000000000000000000000000000000000600261090c565b63ffffffff168163ffffffff16036105c05760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610397565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561069e5761060660028661092b565b63ffffffff166000036106405763ffffffff811660009081526001602090815260408083205491839052909120859055849350915061065c565b63ffffffff811660009081526020819052604090205492508391505b6106877f0000000000000000000000000000000000000000000000000000000000000000848461033c565b9350610694600286610953565b94506001016105c7565b50600354600090601e906106b99063ffffffff16600161097b565b6106c3919061092b565b6003805463ffffffff191663ffffffff8316908117909155600090815260026020526040902085905590506106f986600161097b565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b60006020828403121561073e57600080fd5b5035919050565b60008060006060848603121561075a57600080fd5b83356001600160a01b038116811461077157600080fd5b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806107b2576107b2610786565b6000190192915050565b600080604083850312156107cf57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b6001815b60018411156108315780850481111561081557610815610786565b600184161561082357908102905b60019390931c9280026107fa565b935093915050565b60008261084857506001610906565b8161085557506000610906565b816001811461086b5760028114610875576108a6565b6001915050610906565b60ff84111561088657610886610786565b6001841b915063ffffffff8211156108a0576108a0610786565b50610906565b5060208310610133831016604e8410600b84101617156108dd575081810a63ffffffff8111156108d8576108d8610786565b610906565b6108ec63ffffffff84846107f6565b8063ffffffff0482111561090257610902610786565b0290505b92915050565b600061092463ffffffff841663ffffffff8416610839565b9392505050565b600063ffffffff831680610941576109416107e0565b8063ffffffff84160691505092915050565b600063ffffffff831680610969576109696107e0565b8063ffffffff84160491505092915050565b63ffffffff81811683821601908111156109065761090661078656fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220d4af2da17834eee5c4dc18614acb3b0fdfdd29ac766eb65a8d0826d4773a4afb64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$T = (xs) => xs.length > 1; class MerkleTreeWithHistoryMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$R(args)) { + if (isSuperArgs$T(args)) { super(...args); } else { - super(_abi$1p, _bytecode$R, args[0]); + super(_abi$1t, _bytecode$T, args[0]); } } getDeployTransaction(_treeLevels, _hasher, overrides) { @@ -102174,30 +103778,286 @@ class MerkleTreeWithHistoryMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$R; - static abi = _abi$1p; + static bytecode = _bytecode$T; + static abi = _abi$1t; static createInterface() { - return new Interface(_abi$1p); + return new Interface(_abi$1t); } static connect(address, runner) { return new contract_Contract( address, - _abi$1p, + _abi$1t, runner ); } } -var index$E = /*#__PURE__*/Object.freeze({ +const _abi$1s = [ + { + inputs: [ + { + internalType: "uint256", + name: "_denomination", + type: "uint256" + }, + { + internalType: "address", + name: "_token", + type: "address" + } + ], + stateMutability: "nonpayable", + type: "constructor" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "commitment", + type: "bytes32" + }, + { + indexed: false, + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "VerifiedCommitment", + type: "event" + }, + { + inputs: [], + name: "COMMITMENT_TYPE", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "COMMITMENT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "WITNESS_TYPE_STRING", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "denomination", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "permit2", + outputs: [ + { + internalType: "contract ISignatureTransfer", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "bytes32[]", + name: "_commitments", + type: "bytes32[]" + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes" + } + ], + name: "permit2Commitments", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes" + } + ], + name: "permit2Test", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "token", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + name: "verifiedCommitments", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "instance", + type: "address" + }, + { + internalType: "bytes32", + name: "commitmentsHash", + type: "bytes32" + } + ], + internalType: "struct Permit2Mock.PermitCommitments", + name: "permitData", + type: "tuple" + } + ], + name: "witness", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "pure", + type: "function" + } +]; +const _bytecode$S = "0x6080604052348015600f57600080fd5b50604051610bb1380380610bb1833981016040819052602c916055565b600091909155600180546001600160a01b0319166001600160a01b039092169190911790556090565b60008060408385031215606757600080fd5b825160208401519092506001600160a01b0381168114608557600080fd5b809150509250929050565b610b128061009f6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638bca6d16116100665780638bca6d161461011e5780639e67ab1e14610127578063c58b4c4914610150578063f15ea35914610163578063fc0c546a1461017657600080fd5b806303ac0673146100a357806304f03273146100b857806312261ee7146100d3578063156e2152146101015780637e89f31f14610116575b600080fd5b6100b66100b13660046105ec565b610189565b005b6100c0610243565b6040519081526020015b60405180910390f35b6100e96e22d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020016100ca565b610109610266565b6040516100ca91906106a4565b6101096102a1565b6100c060005481565b6100e96101353660046106be565b6002602052600090815260409020546001600160a01b031681565b6100c061015e36600461071e565b6102bd565b6100b6610171366004610776565b61032a565b6001546100e9906001600160a01b031681565b6040805160a0810182526001546001600160a01b0316606082019081526000546080830181905290825260208083018890528284018790528351808501855230815290810191909152915163187945bd60e11b81526e22d473030f116ddee9f6b43ac78ba3926330f28b7a9261020a929091908a90889088906004016108dc565b600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505050505050565b6040518060600160405280603b8152602001610aa2603b91398051906020012081565b6040518060600160405280603b8152602001610aa2603b913960405160200161028f9190610934565b60405160208183030381529060405281565b6040518060600160405280603b8152602001610aa2603b913981565b60006040518060600160405280603b8152602001610aa2603b9139805160209182012083518483015160405161030d94019283526001600160a01b03919091166020830152604082015260600190565b604051602081830303815290604052805190602001209050919050565b6000855160005461033b91906109b7565b905060008660405160200161035091906109e2565b60408051601f19818403018152828252805160209182012060a0840183526001546001600160a01b0316606085019081526080850187905284528382018a905283830189905282518084018452308082528184018890528451808601909552845291830181905293506e22d473030f116ddee9f6b43ac78ba39263137c29fe929091908c906103de906102bd565b6040518060600160405280603b8152602001610aa2603b91396040516020016104079190610934565b6040516020818303038152906040528a8a6040518863ffffffff1660e01b815260040161043a9796959493929190610a18565b600060405180830381600087803b15801561045457600080fd5b505af1158015610468573d6000803e3d6000fd5b505050506104768789610480565b5050505050505050565b60005b82518110156105825760008382815181106104a0576104a0610a8b565b602090810291909101810151600081815260029092526040909120549091506001600160a01b0316156105195760405162461bcd60e51b815260206004820181905260248201527f54686520636f6d6d69746d656e7420686173206265656e207665726966696564604482015260640160405180910390fd5b60008181526002602090815260409182902080546001600160a01b0319166001600160a01b038716908117909155915191825282917fa9b0993cd360203065cdbc30dd334b2a3eb63115cbb64d73246109d8af75a5f9910160405180910390a250600101610483565b505050565b80356001600160a01b038116811461059e57600080fd5b919050565b60008083601f8401126105b557600080fd5b50813567ffffffffffffffff8111156105cd57600080fd5b6020830191508360208285010111156105e557600080fd5b9250929050565b60008060008060006080868803121561060457600080fd5b61060d86610587565b94506020860135935060408601359250606086013567ffffffffffffffff81111561063757600080fd5b610643888289016105a3565b969995985093965092949392505050565b60005b8381101561066f578181015183820152602001610657565b50506000910152565b60008151808452610690816020860160208601610654565b601f01601f19169290920160200192915050565b6020815260006106b76020830184610678565b9392505050565b6000602082840312156106d057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610716576107166106d7565b604052919050565b6000604082840312801561073157600080fd5b506040805190810167ffffffffffffffff81118282101715610755576107556106d7565b60405261076183610587565b81526020928301359281019290925250919050565b60008060008060008060a0878903121561078f57600080fd5b61079887610587565b9550602087013567ffffffffffffffff8111156107b457600080fd5b8701601f810189136107c557600080fd5b803567ffffffffffffffff8111156107df576107df6106d7565b8060051b6107ef602082016106ed565b9182526020818401810192908101908c84111561080b57600080fd5b6020850194505b8385101561083157843580835260209586019590935090910190610812565b9850505050604088013594505060608701359250608087013567ffffffffffffffff81111561085f57600080fd5b61086b89828a016105a3565b979a9699509497509295939492505050565b61089b82825180516001600160a01b03168252602090810151910152565b60208101516040830152604081015160608301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6108e6818761087d565b84516001600160a01b03166080820152602085015160a08201526001600160a01b03841660c082015261010060e0820181905260009061092990830184866108b3565b979650505050505050565b7f5065726d6974436f6d6d69746d656e7473207769746e6573732900000000000081526000825161096c81601a850160208701610654565b7f546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75601a9390910192830152506d696e7432353620616d6f756e742960901b603a820152604801919050565b80820281158282048414176109dc57634e487b7160e01b600052601160045260246000fd5b92915050565b8151600090829060208501835b82811015610a0d5781518452602093840193909101906001016109ef565b509195945050505050565b610a22818961087d565b86516001600160a01b03166080820152602087015160a082015260018060a01b03861660c08201528460e08201526101406101008201526000610a69610140830186610678565b828103610120840152610a7d8185876108b3565b9a9950505050505050505050565b634e487b7160e01b600052603260045260246000fdfe5065726d6974436f6d6d69746d656e7473286164647265737320696e7374616e63652c6279746573333220636f6d6d69746d656e74734861736829a26469706673582212206a6ecdc893f53628220fd48e8b32741c8e8a1c0862bc81e1d55feb14bef95f1764736f6c634300081c0033"; +const isSuperArgs$S = (xs) => xs.length > 1; +class Permit2Mock__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$S(args)) { + super(...args); + } else { + super(_abi$1s, _bytecode$S, args[0]); + } + } + getDeployTransaction(_denomination, _token, overrides) { + return super.getDeployTransaction(_denomination, _token, overrides || {}); + } + deploy(_denomination, _token, overrides) { + return super.deploy(_denomination, _token, overrides || {}); + } + connect(runner) { + return super.connect(runner); + } + static bytecode = _bytecode$S; + static abi = _abi$1s; + static createInterface() { + return new Interface(_abi$1s); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$1s, runner); + } +} + +var index$F = /*#__PURE__*/Object.freeze({ __proto__: null, BadRecipient__factory: BadRecipient__factory, ERC20Mock__factory: ERC20Mock__factory, IDeployer__factory: IDeployer__factory$1, MerkleTreeWithHistoryMock__factory: MerkleTreeWithHistoryMock__factory, - iusdtSol: index$F + Permit2Mock__factory: Permit2Mock__factory, + iusdtSol: index$G }); -const _abi$1o = [ +const _abi$1r = [ { inputs: [ { @@ -102224,16 +104084,16 @@ const _abi$1o = [ } ]; class IVerifier__factory { - static abi = _abi$1o; + static abi = _abi$1r; static createInterface() { - return new Interface(_abi$1o); + return new Interface(_abi$1r); } static connect(address, runner) { - return new contract_Contract(address, _abi$1o, runner); + return new contract_Contract(address, _abi$1r, runner); } } -const _abi$1n = [ +const _abi$1q = [ { anonymous: false, inputs: [ @@ -102659,22 +104519,22 @@ const _abi$1n = [ } ]; class Tornado__factory { - static abi = _abi$1n; + static abi = _abi$1q; static createInterface() { - return new Interface(_abi$1n); + return new Interface(_abi$1q); } static connect(address, runner) { - return new contract_Contract(address, _abi$1n, runner); + return new contract_Contract(address, _abi$1q, runner); } } -var index$D = /*#__PURE__*/Object.freeze({ +var index$E = /*#__PURE__*/Object.freeze({ __proto__: null, IVerifier__factory: IVerifier__factory, Tornado__factory: Tornado__factory }); -const _abi$1m = [ +const _abi$1p = [ { inputs: [], name: "denomination", @@ -102759,16 +104619,16 @@ const _abi$1m = [ } ]; let ITornadoInstance__factory$1 = class ITornadoInstance__factory { - static abi = _abi$1m; + static abi = _abi$1p; static createInterface() { - return new Interface(_abi$1m); + return new Interface(_abi$1p); } static connect(address, runner) { - return new contract_Contract(address, _abi$1m, runner); + return new contract_Contract(address, _abi$1p, runner); } }; -const _abi$1l = [ +const _abi$1o = [ { anonymous: false, inputs: [ @@ -102873,14 +104733,14 @@ const _abi$1l = [ type: "function" } ]; -const _bytecode$Q = "0x608060405234801561001057600080fd5b506104f6806100206000396000f3fe6080604052600436106100345760003560e01c806313d98d13146100395780636485ba2a1461004e578063b438689f1461006e575b600080fd5b61004c6100473660046102c7565b610081565b005b34801561005a57600080fd5b5061004c610069366004610258565b61012a565b61004c61007c366004610321565b610198565b60405163b214faa560e01b81526001600160a01b0385169063b214faa59034906100af9087906004016103ec565b6000604051808303818588803b1580156100c857600080fd5b505af11580156100dc573d6000803e3d6000fd5b5050505050336001600160a01b03167ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008838360405161011c9291906103f5565b60405180910390a250505050565b60005b8181101561019357337ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b400884848481811061016357fe5b90506020028101906101759190610463565b6040516101839291906103f5565b60405180910390a260010161012d565b505050565b6040516310d056db60e11b81526001600160a01b038a16906321a0adb69034906101d4908c908c908c908c908c908c908c908c90600401610411565b6000604051808303818588803b1580156101ed57600080fd5b505af1158015610201573d6000803e3d6000fd5b5050505050505050505050505050565b60008083601f840112610222578182fd5b50813567ffffffffffffffff811115610239578182fd5b60208301915083602082850101111561025157600080fd5b9250929050565b6000806020838503121561026a578182fd5b823567ffffffffffffffff80821115610281578384fd5b818501915085601f830112610294578384fd5b8135818111156102a2578485fd5b86602080830285010111156102b5578485fd5b60209290920196919550909350505050565b600080600080606085870312156102dc578182fd5b84356102e7816104a8565b935060208501359250604085013567ffffffffffffffff811115610309578283fd5b61031587828801610211565b95989497509550505050565b60008060008060008060008060006101008a8c03121561033f578485fd5b893561034a816104a8565b985060208a013567ffffffffffffffff811115610365578586fd5b6103718c828d01610211565b90995097505060408a0135955060608a0135945060808a0135610393816104a8565b935060a08a01356103a3816104a8565b8093505060c08a0135915060e08a013590509295985092959850929598565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b90815260200190565b6000602082526104096020830184866103c2565b949350505050565b600060e0825261042560e083018a8c6103c2565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b6000808335601e19843603018112610479578283fd5b83018035915067ffffffffffffffff821115610493578283fd5b60200191503681900382131561025157600080fd5b6001600160a01b03811681146104bd57600080fd5b5056fea2646970667358221220a833625c5e7cc02dff95b380fd1e6d47b08cffea90c70cfe6739960deee47b8364736f6c634300060c0033"; -const isSuperArgs$Q = (xs) => xs.length > 1; +const _bytecode$R = "0x608060405234801561001057600080fd5b506104f6806100206000396000f3fe6080604052600436106100345760003560e01c806313d98d13146100395780636485ba2a1461004e578063b438689f1461006e575b600080fd5b61004c6100473660046102c7565b610081565b005b34801561005a57600080fd5b5061004c610069366004610258565b61012a565b61004c61007c366004610321565b610198565b60405163b214faa560e01b81526001600160a01b0385169063b214faa59034906100af9087906004016103ec565b6000604051808303818588803b1580156100c857600080fd5b505af11580156100dc573d6000803e3d6000fd5b5050505050336001600160a01b03167ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008838360405161011c9291906103f5565b60405180910390a250505050565b60005b8181101561019357337ffa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b400884848481811061016357fe5b90506020028101906101759190610463565b6040516101839291906103f5565b60405180910390a260010161012d565b505050565b6040516310d056db60e11b81526001600160a01b038a16906321a0adb69034906101d4908c908c908c908c908c908c908c908c90600401610411565b6000604051808303818588803b1580156101ed57600080fd5b505af1158015610201573d6000803e3d6000fd5b5050505050505050505050505050565b60008083601f840112610222578182fd5b50813567ffffffffffffffff811115610239578182fd5b60208301915083602082850101111561025157600080fd5b9250929050565b6000806020838503121561026a578182fd5b823567ffffffffffffffff80821115610281578384fd5b818501915085601f830112610294578384fd5b8135818111156102a2578485fd5b86602080830285010111156102b5578485fd5b60209290920196919550909350505050565b600080600080606085870312156102dc578182fd5b84356102e7816104a8565b935060208501359250604085013567ffffffffffffffff811115610309578283fd5b61031587828801610211565b95989497509550505050565b60008060008060008060008060006101008a8c03121561033f578485fd5b893561034a816104a8565b985060208a013567ffffffffffffffff811115610365578586fd5b6103718c828d01610211565b90995097505060408a0135955060608a0135945060808a0135610393816104a8565b935060a08a01356103a3816104a8565b8093505060c08a0135915060e08a013590509295985092959850929598565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b90815260200190565b6000602082526104096020830184866103c2565b949350505050565b600060e0825261042560e083018a8c6103c2565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b6000808335601e19843603018112610479578283fd5b83018035915067ffffffffffffffff821115610493578283fd5b60200191503681900382131561025157600080fd5b6001600160a01b03811681146104bd57600080fd5b5056fea2646970667358221220a833625c5e7cc02dff95b380fd1e6d47b08cffea90c70cfe6739960deee47b8364736f6c634300060c0033"; +const isSuperArgs$R = (xs) => xs.length > 1; class TornadoProxyLight__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$Q(args)) { + if (isSuperArgs$R(args)) { super(...args); } else { - super(_abi$1l, _bytecode$Q, args[0]); + super(_abi$1o, _bytecode$R, args[0]); } } getDeployTransaction(overrides) { @@ -102892,23 +104752,23 @@ class TornadoProxyLight__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$Q; - static abi = _abi$1l; + static bytecode = _bytecode$R; + static abi = _abi$1o; static createInterface() { - return new Interface(_abi$1l); + return new Interface(_abi$1o); } static connect(address, runner) { - return new contract_Contract(address, _abi$1l, runner); + return new contract_Contract(address, _abi$1o, runner); } } -var index$C = /*#__PURE__*/Object.freeze({ +var index$D = /*#__PURE__*/Object.freeze({ __proto__: null, ITornadoInstance__factory: ITornadoInstance__factory$1, TornadoProxyLight__factory: TornadoProxyLight__factory }); -const _abi$1k = [ +const _abi$1n = [ { inputs: [], name: "DOMAIN_SEPARATOR", @@ -103119,16 +104979,16 @@ const _abi$1k = [ } ]; class IERC20__factory { - static abi = _abi$1k; + static abi = _abi$1n; static createInterface() { - return new Interface(_abi$1k); + return new Interface(_abi$1n); } static connect(address, runner) { - return new contract_Contract(address, _abi$1k, runner); + return new contract_Contract(address, _abi$1n, runner); } } -const _abi$1j = [ +const _abi$1m = [ { inputs: [ { @@ -103523,22 +105383,22 @@ const _abi$1j = [ } ]; class ISignatureTransfer__factory { - static abi = _abi$1j; + static abi = _abi$1m; static createInterface() { - return new Interface(_abi$1j); + return new Interface(_abi$1m); } static connect(address, runner) { - return new contract_Contract(address, _abi$1j, runner); + return new contract_Contract(address, _abi$1m, runner); } } -var index$B = /*#__PURE__*/Object.freeze({ +var index$C = /*#__PURE__*/Object.freeze({ __proto__: null, IERC20__factory: IERC20__factory, ISignatureTransfer__factory: ISignatureTransfer__factory }); -const _abi$1i = [ +const _abi$1l = [ { inputs: [ { @@ -104007,14 +105867,14 @@ const _abi$1i = [ type: "function" } ]; -const _bytecode$P = "0x610120604052600380546001600160401b031916905534801561002157600080fd5b50604051611dc5380380611dc583398101604081905261004091610420565b84848484808360008263ffffffff16116100ad5760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101035760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a4565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff16101561018b5763ffffffff8116600090815260016020908152604080832085905590829052902082905561018183838061023b565b915060010161013e565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816102195760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a4565b506001600160a01b0392831660c05260e052501661010052506104b892505050565b6000600080516020611da5833981519152831061029a5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a4565b600080516020611da583398151915282106103015760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a4565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103749190610494565b9092509050600080516020611da583398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fd9190610494565b509695505050505050565b6001600160a01b038116811461041d57600080fd5b50565b600080600080600060a0868803121561043857600080fd5b855161044381610408565b602087015190955061045481610408565b60408701516060880151919550935063ffffffff8116811461047557600080fd5b608087015190925061048681610408565b809150509295509295909350565b600080604083850312156104a757600080fd5b505080516020909101519092909150565b60805160a05160c05160e05161010051611863610542600039600081816104ca01528181610cfa01528181610d34015261108e0152600081816102bb0152818161056f01528181610ccc01526110b20152600081816101a601526106d801526000818161022201528181610e150152610eb70152600081816104690152610f4f01526118636000f3fe6080604052600436106101355760003560e01c8063b214faa5116100ab578063e82955881161006f578063e8295588146103f6578063ec73295914610423578063ed33639f14610457578063f178e47c1461048b578063fc0c546a146104b8578063fc7e9c6f146104ec57600080fd5b8063b214faa514610347578063ba70f7571461035a578063c2b40ae414610384578063cd87a3b4146103b1578063e5285dcc146103c657600080fd5b80636d9833e3116100fd5780636d9833e314610259578063839df945146102795780638bca6d16146102a95780638ea3099e146102dd57806390eeb02b146102fd5780639fa12d0b1461031a57600080fd5b806317cc915c1461013a57806321a0adb61461017f5780632b7ac3f314610194578063414a37ba146101e05780634ecf518b14610210575b600080fd5b34801561014657600080fd5b5061016a61015536600461131d565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61019261018d36600461135e565b610511565b005b3480156101a057600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610176565b3480156101ec57600080fd5b5061020260008051602061180e83398151915281565b604051908152602001610176565b34801561021c57600080fd5b506102447f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610176565b34801561026557600080fd5b5061016a61027436600461131d565b61081c565b34801561028557600080fd5b5061016a61029436600461131d565b60066020526000908152604090205460ff1681565b3480156102b557600080fd5b506102027f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e957600080fd5b506102026102f8366004611417565b61089a565b34801561030957600080fd5b506003546102449063ffffffff1681565b34801561032657600080fd5b5061033a61033536600461144c565b610a67565b60405161017691906114c3565b61019261035536600461131d565b610b23565b34801561036657600080fd5b5060035463ffffffff16600090815260026020526040902054610202565b34801561039057600080fd5b5061020261039f36600461131d565b60026020526000908152604090205481565b3480156103bd57600080fd5b50610244601e81565b3480156103d257600080fd5b5061016a6103e136600461131d565b60009081526005602052604090205460ff1690565b34801561040257600080fd5b5061020261041136600461131d565b60016020526000908152604090205481565b34801561042f57600080fd5b506102027f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561046357600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b34801561049757600080fd5b506102026104a636600461131d565b60006020819052908152604090205481565b3480156104c457600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b5060035461024490640100000000900463ffffffff1681565b6002600454036105685760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156105dd5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015260640161055f565b60008581526005602052604090205460ff161561063c5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015260640161055f565b6106458661081c565b6106915760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015260640161055f565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f991610711918c918c91600401611508565b6020604051808303816000875af1158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190611568565b6107995760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015260640161055f565b6000858152600560205260409020805460ff191660011790556107be84848484610c5a565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b600081810361082d57506000919050565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054840361085e575060019392505050565b8063ffffffff166000036108705750601e5b8061087a816115a7565b9150508163ffffffff168163ffffffff1603610838575060009392505050565b600060008051602061180e83398151915283106108f95760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161055f565b60008051602061180e83398151915282106109605760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161055f565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156109af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d391906115c7565b909250905060008051602061180e83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c91906115c7565b509695505050505050565b60608167ffffffffffffffff811115610a8257610a82611601565b604051908082528060200260200182016040528015610aab578160200160208202803683370190505b50905060005b82811015610b1c57610aea848483818110610ace57610ace611617565b9050602002013560009081526005602052604090205460ff1690565b15610b14576001828281518110610b0357610b03611617565b911515602092830291909101909101525b600101610ab1565b5092915050565b600260045403610b755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161055f565b600260045560008181526006602052604090205460ff1615610be35760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b606482015260840161055f565b6000610bee82610dfc565b6000838152600660205260409020805460ff191660011790559050610c1161101a565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b803414610cc25760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b606482015260840161055f565b610d2184610cf0847f000000000000000000000000000000000000000000000000000000000000000061162d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906110d8565b8115610d5b57610d5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846110d8565b8015610df6576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114610dae576040519150601f19603f3d011682016040523d82523d6000602084013e610db3565b606091505b5050905080610df4576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015610df2573d6000803e3d6000fd5b505b505b50505050565b600354600090640100000000900463ffffffff16610e3b7f0000000000000000000000000000000000000000000000000000000000000000600261175a565b63ffffffff168163ffffffff1603610eae5760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b606482015260840161055f565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff161015610f8c57610ef4600286611772565b63ffffffff16600003610f2e5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150610f4a565b63ffffffff811660009081526020819052604090205492508391505b610f757f0000000000000000000000000000000000000000000000000000000000000000848461089a565b9350610f8260028661179a565b9450600101610eb5565b50600354600090601e90610fa79063ffffffff1660016117c2565b610fb19190611772565b6003805463ffffffff191663ffffffff831690811790915560009081526002602052604090208590559050610fe78660016117c2565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b34156110815760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b606482015260840161055f565b6110d66001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006111f1565b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161113491906117de565b6000604051808303816000865af19150503d8060008114611171576040519150601f19603f3d011682016040523d82523d6000602084013e611176565b606091505b50915091508161118857805181602001fd5b805115806111a55750808060200190518101906111a59190611568565b610df45760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c65640000604482015260640161055f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161125591906117de565b6000604051808303816000865af19150503d8060008114611292576040519150601f19603f3d011682016040523d82523d6000602084013e611297565b606091505b5091509150816112a957805181602001fd5b805115806112c65750808060200190518101906112c69190611568565b610df25760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b606482015260840161055f565b60006020828403121561132f57600080fd5b5035919050565b6001600160a01b038116811461134b57600080fd5b50565b803561135981611336565b919050565b60008060008060008060008060e0898b03121561137a57600080fd5b883567ffffffffffffffff81111561139157600080fd5b8901601f81018b136113a257600080fd5b803567ffffffffffffffff8111156113b957600080fd5b8b60208284010111156113cb57600080fd5b6020918201995097508901359550604089013594506113ec60608a0161134e565b93506113fa60808a0161134e565b979a969950949793969295929450505060a08201359160c0013590565b60008060006060848603121561142c57600080fd5b833561143781611336565b95602085013595506040909401359392505050565b6000806020838503121561145f57600080fd5b823567ffffffffffffffff81111561147657600080fd5b8301601f8101851361148757600080fd5b803567ffffffffffffffff81111561149e57600080fd5b8560208260051b84010111156114b357600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156114fd57835115158352602093840193909201916001016114dd565b509095945050505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b600681101561155d57815183526020928301929091019060010161153e565b505050949350505050565b60006020828403121561157a57600080fd5b8151801515811461158a57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806115bd576115bd611591565b6000190192915050565b600080604083850312156115da57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561164057611640611591565b92915050565b6001815b60018411156116815780850481111561166557611665611591565b600184161561167357908102905b60019390931c92800261164a565b935093915050565b60008261169857506001611640565b816116a557506000611640565b81600181146116bb57600281146116c5576116f6565b6001915050611640565b60ff8411156116d6576116d6611591565b6001841b915063ffffffff8211156116f0576116f0611591565b50611640565b5060208310610133831016604e8410600b841016171561172d575081810a63ffffffff81111561172857611728611591565b611640565b61173c63ffffffff8484611646565b8063ffffffff0482111561175257611752611591565b029392505050565b600061158a63ffffffff841663ffffffff8416611689565b600063ffffffff831680611788576117886115eb565b8063ffffffff84160691505092915050565b600063ffffffff8316806117b0576117b06115eb565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561164057611640611591565b6000825160005b818110156117ff57602081860181015185830152016117e5565b50600092019182525091905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220b02ff0aa2482e2d5c96dc808653f03833fb36ec1e6b15aae7d79ca885ffda98164736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$P = (xs) => xs.length > 1; +const _bytecode$Q = "0x610120604052600380546001600160401b031916905534801561002157600080fd5b50604051611dc5380380611dc583398101604081905261004091610420565b84848484808360008263ffffffff16116100ad5760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101035760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a4565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff16101561018b5763ffffffff8116600090815260016020908152604080832085905590829052902082905561018183838061023b565b915060010161013e565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816102195760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a4565b506001600160a01b0392831660c05260e052501661010052506104b892505050565b6000600080516020611da5833981519152831061029a5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a4565b600080516020611da583398151915282106103015760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a4565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103749190610494565b9092509050600080516020611da583398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fd9190610494565b509695505050505050565b6001600160a01b038116811461041d57600080fd5b50565b600080600080600060a0868803121561043857600080fd5b855161044381610408565b602087015190955061045481610408565b60408701516060880151919550935063ffffffff8116811461047557600080fd5b608087015190925061048681610408565b809150509295509295909350565b600080604083850312156104a757600080fd5b505080516020909101519092909150565b60805160a05160c05160e05161010051611863610542600039600081816104ca01528181610cfa01528181610d34015261108e0152600081816102bb0152818161056f01528181610ccc01526110b20152600081816101a601526106d801526000818161022201528181610e150152610eb70152600081816104690152610f4f01526118636000f3fe6080604052600436106101355760003560e01c8063b214faa5116100ab578063e82955881161006f578063e8295588146103f6578063ec73295914610423578063ed33639f14610457578063f178e47c1461048b578063fc0c546a146104b8578063fc7e9c6f146104ec57600080fd5b8063b214faa514610347578063ba70f7571461035a578063c2b40ae414610384578063cd87a3b4146103b1578063e5285dcc146103c657600080fd5b80636d9833e3116100fd5780636d9833e314610259578063839df945146102795780638bca6d16146102a95780638ea3099e146102dd57806390eeb02b146102fd5780639fa12d0b1461031a57600080fd5b806317cc915c1461013a57806321a0adb61461017f5780632b7ac3f314610194578063414a37ba146101e05780634ecf518b14610210575b600080fd5b34801561014657600080fd5b5061016a61015536600461131d565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61019261018d36600461135e565b610511565b005b3480156101a057600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610176565b3480156101ec57600080fd5b5061020260008051602061180e83398151915281565b604051908152602001610176565b34801561021c57600080fd5b506102447f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610176565b34801561026557600080fd5b5061016a61027436600461131d565b61081c565b34801561028557600080fd5b5061016a61029436600461131d565b60066020526000908152604090205460ff1681565b3480156102b557600080fd5b506102027f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e957600080fd5b506102026102f8366004611417565b61089a565b34801561030957600080fd5b506003546102449063ffffffff1681565b34801561032657600080fd5b5061033a61033536600461144c565b610a67565b60405161017691906114c3565b61019261035536600461131d565b610b23565b34801561036657600080fd5b5060035463ffffffff16600090815260026020526040902054610202565b34801561039057600080fd5b5061020261039f36600461131d565b60026020526000908152604090205481565b3480156103bd57600080fd5b50610244601e81565b3480156103d257600080fd5b5061016a6103e136600461131d565b60009081526005602052604090205460ff1690565b34801561040257600080fd5b5061020261041136600461131d565b60016020526000908152604090205481565b34801561042f57600080fd5b506102027f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561046357600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b34801561049757600080fd5b506102026104a636600461131d565b60006020819052908152604090205481565b3480156104c457600080fd5b506101c87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b5060035461024490640100000000900463ffffffff1681565b6002600454036105685760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156105dd5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015260640161055f565b60008581526005602052604090205460ff161561063c5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015260640161055f565b6106458661081c565b6106915760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015260640161055f565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f991610711918c918c91600401611508565b6020604051808303816000875af1158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190611568565b6107995760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015260640161055f565b6000858152600560205260409020805460ff191660011790556107be84848484610c5a565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b600081810361082d57506000919050565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054840361085e575060019392505050565b8063ffffffff166000036108705750601e5b8061087a816115a7565b9150508163ffffffff168163ffffffff1603610838575060009392505050565b600060008051602061180e83398151915283106108f95760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015260640161055f565b60008051602061180e83398151915282106109605760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161055f565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156109af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d391906115c7565b909250905060008051602061180e83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c91906115c7565b509695505050505050565b60608167ffffffffffffffff811115610a8257610a82611601565b604051908082528060200260200182016040528015610aab578160200160208202803683370190505b50905060005b82811015610b1c57610aea848483818110610ace57610ace611617565b9050602002013560009081526005602052604090205460ff1690565b15610b14576001828281518110610b0357610b03611617565b911515602092830291909101909101525b600101610ab1565b5092915050565b600260045403610b755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161055f565b600260045560008181526006602052604090205460ff1615610be35760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b606482015260840161055f565b6000610bee82610dfc565b6000838152600660205260409020805460ff191660011790559050610c1161101a565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b803414610cc25760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b606482015260840161055f565b610d2184610cf0847f000000000000000000000000000000000000000000000000000000000000000061162d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906110d8565b8115610d5b57610d5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846110d8565b8015610df6576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114610dae576040519150601f19603f3d011682016040523d82523d6000602084013e610db3565b606091505b5050905080610df4576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015610df2573d6000803e3d6000fd5b505b505b50505050565b600354600090640100000000900463ffffffff16610e3b7f0000000000000000000000000000000000000000000000000000000000000000600261175a565b63ffffffff168163ffffffff1603610eae5760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b606482015260840161055f565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff161015610f8c57610ef4600286611772565b63ffffffff16600003610f2e5763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150610f4a565b63ffffffff811660009081526020819052604090205492508391505b610f757f0000000000000000000000000000000000000000000000000000000000000000848461089a565b9350610f8260028661179a565b9450600101610eb5565b50600354600090601e90610fa79063ffffffff1660016117c2565b610fb19190611772565b6003805463ffffffff191663ffffffff831690811790915560009081526002602052604090208590559050610fe78660016117c2565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b34156110815760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b606482015260840161055f565b6110d66001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006111f1565b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161113491906117de565b6000604051808303816000865af19150503d8060008114611171576040519150601f19603f3d011682016040523d82523d6000602084013e611176565b606091505b50915091508161118857805181602001fd5b805115806111a55750808060200190518101906111a59190611568565b610df45760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c65640000604482015260640161055f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161125591906117de565b6000604051808303816000865af19150503d8060008114611292576040519150601f19603f3d011682016040523d82523d6000602084013e611297565b606091505b5091509150816112a957805181602001fd5b805115806112c65750808060200190518101906112c69190611568565b610df25760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b606482015260840161055f565b60006020828403121561132f57600080fd5b5035919050565b6001600160a01b038116811461134b57600080fd5b50565b803561135981611336565b919050565b60008060008060008060008060e0898b03121561137a57600080fd5b883567ffffffffffffffff81111561139157600080fd5b8901601f81018b136113a257600080fd5b803567ffffffffffffffff8111156113b957600080fd5b8b60208284010111156113cb57600080fd5b6020918201995097508901359550604089013594506113ec60608a0161134e565b93506113fa60808a0161134e565b979a969950949793969295929450505060a08201359160c0013590565b60008060006060848603121561142c57600080fd5b833561143781611336565b95602085013595506040909401359392505050565b6000806020838503121561145f57600080fd5b823567ffffffffffffffff81111561147657600080fd5b8301601f8101851361148757600080fd5b803567ffffffffffffffff81111561149e57600080fd5b8560208260051b84010111156114b357600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156114fd57835115158352602093840193909201916001016114dd565b509095945050505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b600681101561155d57815183526020928301929091019060010161153e565b505050949350505050565b60006020828403121561157a57600080fd5b8151801515811461158a57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806115bd576115bd611591565b6000190192915050565b600080604083850312156115da57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561164057611640611591565b92915050565b6001815b60018411156116815780850481111561166557611665611591565b600184161561167357908102905b60019390931c92800261164a565b935093915050565b60008261169857506001611640565b816116a557506000611640565b81600181146116bb57600281146116c5576116f6565b6001915050611640565b60ff8411156116d6576116d6611591565b6001841b915063ffffffff8211156116f0576116f0611591565b50611640565b5060208310610133831016604e8410600b841016171561172d575081810a63ffffffff81111561172857611728611591565b611640565b61173c63ffffffff8484611646565b8063ffffffff0482111561175257611752611591565b029392505050565b600061158a63ffffffff841663ffffffff8416611689565b600063ffffffff831680611788576117886115eb565b8063ffffffff84160691505092915050565b600063ffffffff8316806117b0576117b06115eb565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561164057611640611591565b6000825160005b818110156117ff57602081860181015185830152016117e5565b50600092019182525091905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220b02ff0aa2482e2d5c96dc808653f03833fb36ec1e6b15aae7d79ca885ffda98164736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$Q = (xs) => xs.length > 1; class ERC20Tornado__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$P(args)) { + if (isSuperArgs$Q(args)) { super(...args); } else { - super(_abi$1i, _bytecode$P, args[0]); + super(_abi$1l, _bytecode$Q, args[0]); } } getDeployTransaction(_verifier, _hasher, _denomination, _merkleTreeHeight, _token, overrides) { @@ -104040,17 +105900,17 @@ class ERC20Tornado__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$P; - static abi = _abi$1i; + static bytecode = _bytecode$Q; + static abi = _abi$1l; static createInterface() { - return new Interface(_abi$1i); + return new Interface(_abi$1l); } static connect(address, runner) { - return new contract_Contract(address, _abi$1i, runner); + return new contract_Contract(address, _abi$1l, runner); } } -const _abi$1h = [ +const _abi$1k = [ { inputs: [ { @@ -104501,14 +106361,14 @@ const _abi$1h = [ type: "function" } ]; -const _bytecode$O = "0x610100604052600380546001600160401b031916905534801561002157600080fd5b50604051611b75380380611b758339810160408190526100409161041b565b83838383808360008263ffffffff16116100ad5760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101035760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a4565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff16101561018b5763ffffffff81166000908152600160209081526040808320859055908290529020829055610181838380610236565b915060010161013e565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816102195760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a4565b506001600160a01b0390921660c0525060e0525061049d92505050565b6000600080516020611b5583398151915283106102955760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a4565b600080516020611b5583398151915282106102fc5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a4565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610479565b9092509050600080516020611b5583398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f89190610479565b509695505050505050565b6001600160a01b038116811461041857600080fd5b50565b6000806000806080858703121561043157600080fd5b845161043c81610403565b602086015190945061044d81610403565b60408601516060870151919450925063ffffffff8116811461046e57600080fd5b939692955090935050565b6000806040838503121561048c57600080fd5b505080516020909101519092909150565b60805160a05160c05160e05161164e610507600039600081816102b00152818161053001528181610d0401526110a201526000818161019b015261069901526000818161021701528181610e9b0152610f3d01526000818161045e0152610fd5015261164e6000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc146103bb578063e8295588146103eb578063ec73295914610418578063ed33639f1461044c578063f178e47c14610480578063fc7e9c6f146104ad57600080fd5b80639fa12d0b1461030f578063b214faa51461033c578063ba70f7571461034f578063c2b40ae414610379578063cd87a3b4146103a657600080fd5b80636d9833e3116100f25780636d9833e31461024e578063839df9451461026e5780638bca6d161461029e5780638ea3099e146102d257806390eeb02b146102f257600080fd5b806317cc915c1461012f57806321a0adb6146101745780632b7ac3f314610189578063414a37ba146101d55780634ecf518b14610205575b600080fd5b34801561013b57600080fd5b5061015f61014a366004611137565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610187610182366004611178565b6104d2565b005b34801561019557600080fd5b506101bd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101e157600080fd5b506101f76000805160206115f983398151915281565b60405190815260200161016b565b34801561021157600080fd5b506102397f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161016b565b34801561025a57600080fd5b5061015f610269366004611137565b6107dd565b34801561027a57600080fd5b5061015f610289366004611137565b60066020526000908152604090205460ff1681565b3480156102aa57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b3480156102de57600080fd5b506101f76102ed366004611231565b61085b565b3480156102fe57600080fd5b506003546102399063ffffffff1681565b34801561031b57600080fd5b5061032f61032a366004611266565b610a28565b60405161016b91906112dd565b61018761034a366004611137565b610ae4565b34801561035b57600080fd5b5060035463ffffffff166000908152600260205260409020546101f7565b34801561038557600080fd5b506101f7610394366004611137565b60026020526000908152604090205481565b3480156103b257600080fd5b50610239601e81565b3480156103c757600080fd5b5061015f6103d6366004611137565b60009081526005602052604090205460ff1690565b3480156103f757600080fd5b506101f7610406366004611137565b60016020526000908152604090205481565b34801561042457600080fd5b506101f77f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561045857600080fd5b506101bd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048c57600080fd5b506101f761049b366004611137565b60006020819052908152604090205481565b3480156104b957600080fd5b5060035461023990640100000000900463ffffffff1681565b6002600454036105295760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561059e5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610520565b60008581526005602052604090205460ff16156105fd5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610520565b610606866107dd565b6106525760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610520565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f9916106d2918c918c91600401611322565b6020604051808303816000875af11580156106f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107159190611382565b61075a5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610520565b6000858152600560205260409020805460ff1916600117905561077f84848484610c1b565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b60008181036107ee57506000919050565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054840361081f575060019392505050565b8063ffffffff166000036108315750601e5b8061083b816113c1565b9150508163ffffffff168163ffffffff16036107f9575060009392505050565b60006000805160206115f983398151915283106108ba5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610520565b6000805160206115f983398151915282106109215760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610520565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099491906113e1565b90925090506000805160206115f983398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156109f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1d91906113e1565b509695505050505050565b60608167ffffffffffffffff811115610a4357610a4361141b565b604051908082528060200260200182016040528015610a6c578160200160208202803683370190505b50905060005b82811015610add57610aab848483818110610a8f57610a8f611431565b9050602002013560009081526005602052604090205460ff1690565b15610ad5576001828281518110610ac457610ac4611431565b911515602092830291909101909101525b600101610a72565b5092915050565b600260045403610b365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610520565b600260045560008181526006602052604090205460ff1615610ba45760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b6064820152608401610520565b6000610baf82610e82565b6000838152600660205260409020805460ff191660011790559050610bd26110a0565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b3415610c875760405162461bcd60e51b815260206004820152603560248201527f4d6573736167652076616c756520697320737570706f73656420746f206265206044820152747a65726f20666f722045544820696e7374616e636560581b6064820152608401610520565b8015610cf25760405162461bcd60e51b815260206004820152603460248201527f526566756e642076616c756520697320737570706f73656420746f206265207a60448201527365726f20666f722045544820696e7374616e636560601b6064820152608401610520565b60006001600160a01b038516610d28847f0000000000000000000000000000000000000000000000000000000000000000611447565b604051600081818185875af1925050503d8060008114610d64576040519150601f19603f3d011682016040523d82523d6000602084013e610d69565b606091505b5050905080610dc85760405162461bcd60e51b815260206004820152602560248201527f7061796d656e7420746f205f726563697069656e7420646964206e6f7420676f604482015264207468727560d81b6064820152608401610520565b8215610e7b576040516001600160a01b038516908490600081818185875af1925050503d8060008114610e17576040519150601f19603f3d011682016040523d82523d6000602084013e610e1c565b606091505b50508091505080610e7b5760405162461bcd60e51b815260206004820152602360248201527f7061796d656e7420746f205f72656c6179657220646964206e6f7420676f207460448201526268727560e81b6064820152608401610520565b5050505050565b600354600090640100000000900463ffffffff16610ec17f00000000000000000000000000000000000000000000000000000000000000006002611574565b63ffffffff168163ffffffff1603610f345760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610520565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561101257610f7a60028661158c565b63ffffffff16600003610fb45763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150610fd0565b63ffffffff811660009081526020819052604090205492508391505b610ffb7f0000000000000000000000000000000000000000000000000000000000000000848461085b565b93506110086002866115b4565b9450600101610f3b565b50600354600090601e9061102d9063ffffffff1660016115dc565b611037919061158c565b6003805463ffffffff191663ffffffff83169081179091556000908152600260205260409020859055905061106d8660016115dc565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000034146111355760405162461bcd60e51b815260206004820152603860248201527f506c656173652073656e6420606d697844656e6f6d696e6174696f6e6020455460448201527f4820616c6f6e672077697468207472616e73616374696f6e00000000000000006064820152608401610520565b565b60006020828403121561114957600080fd5b5035919050565b6001600160a01b038116811461116557600080fd5b50565b803561117381611150565b919050565b60008060008060008060008060e0898b03121561119457600080fd5b883567ffffffffffffffff8111156111ab57600080fd5b8901601f81018b136111bc57600080fd5b803567ffffffffffffffff8111156111d357600080fd5b8b60208284010111156111e557600080fd5b60209182019950975089013595506040890135945061120660608a01611168565b935061121460808a01611168565b979a969950949793969295929450505060a08201359160c0013590565b60008060006060848603121561124657600080fd5b833561125181611150565b95602085013595506040909401359392505050565b6000806020838503121561127957600080fd5b823567ffffffffffffffff81111561129057600080fd5b8301601f810185136112a157600080fd5b803567ffffffffffffffff8111156112b857600080fd5b8560208260051b84010111156112cd57600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b8181101561131757835115158352602093840193909201916001016112f7565b509095945050505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b6006811015611377578151835260209283019290910190600101611358565b505050949350505050565b60006020828403121561139457600080fd5b815180151581146113a457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806113d7576113d76113ab565b6000190192915050565b600080604083850312156113f457600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561145a5761145a6113ab565b92915050565b6001815b600184111561149b5780850481111561147f5761147f6113ab565b600184161561148d57908102905b60019390931c928002611464565b935093915050565b6000826114b25750600161145a565b816114bf5750600061145a565b81600181146114d557600281146114df57611510565b600191505061145a565b60ff8411156114f0576114f06113ab565b6001841b915063ffffffff82111561150a5761150a6113ab565b5061145a565b5060208310610133831016604e8410600b8410161715611547575081810a63ffffffff811115611542576115426113ab565b61145a565b61155663ffffffff8484611460565b8063ffffffff0482111561156c5761156c6113ab565b029392505050565b60006113a463ffffffff841663ffffffff84166114a3565b600063ffffffff8316806115a2576115a2611405565b8063ffffffff84160691505092915050565b600063ffffffff8316806115ca576115ca611405565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561145a5761145a6113ab56fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a264697066735822122030cdb3d931ce1408ab144147edd7c76e28173ecad063b971dad09ea221811b3c64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$O = (xs) => xs.length > 1; +const _bytecode$P = "0x610100604052600380546001600160401b031916905534801561002157600080fd5b50604051611b75380380611b758339810160408190526100409161041b565b83838383808360008263ffffffff16116100ad5760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101035760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a4565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff16101561018b5763ffffffff81166000908152600160209081526040808320859055908290529020829055610181838380610236565b915060010161013e565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550506001600455816102195760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a4565b506001600160a01b0390921660c0525060e0525061049d92505050565b6000600080516020611b5583398151915283106102955760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a4565b600080516020611b5583398151915282106102fc5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a4565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa15801561034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190610479565b9092509050600080516020611b5583398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f89190610479565b509695505050505050565b6001600160a01b038116811461041857600080fd5b50565b6000806000806080858703121561043157600080fd5b845161043c81610403565b602086015190945061044d81610403565b60408601516060870151919450925063ffffffff8116811461046e57600080fd5b939692955090935050565b6000806040838503121561048c57600080fd5b505080516020909101519092909150565b60805160a05160c05160e05161164e610507600039600081816102b00152818161053001528181610d0401526110a201526000818161019b015261069901526000818161021701528181610e9b0152610f3d01526000818161045e0152610fd5015261164e6000f3fe60806040526004361061012a5760003560e01c80639fa12d0b116100ab578063e5285dcc1161006f578063e5285dcc146103bb578063e8295588146103eb578063ec73295914610418578063ed33639f1461044c578063f178e47c14610480578063fc7e9c6f146104ad57600080fd5b80639fa12d0b1461030f578063b214faa51461033c578063ba70f7571461034f578063c2b40ae414610379578063cd87a3b4146103a657600080fd5b80636d9833e3116100f25780636d9833e31461024e578063839df9451461026e5780638bca6d161461029e5780638ea3099e146102d257806390eeb02b146102f257600080fd5b806317cc915c1461012f57806321a0adb6146101745780632b7ac3f314610189578063414a37ba146101d55780634ecf518b14610205575b600080fd5b34801561013b57600080fd5b5061015f61014a366004611137565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b610187610182366004611178565b6104d2565b005b34801561019557600080fd5b506101bd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101e157600080fd5b506101f76000805160206115f983398151915281565b60405190815260200161016b565b34801561021157600080fd5b506102397f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161016b565b34801561025a57600080fd5b5061015f610269366004611137565b6107dd565b34801561027a57600080fd5b5061015f610289366004611137565b60066020526000908152604090205460ff1681565b3480156102aa57600080fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b3480156102de57600080fd5b506101f76102ed366004611231565b61085b565b3480156102fe57600080fd5b506003546102399063ffffffff1681565b34801561031b57600080fd5b5061032f61032a366004611266565b610a28565b60405161016b91906112dd565b61018761034a366004611137565b610ae4565b34801561035b57600080fd5b5060035463ffffffff166000908152600260205260409020546101f7565b34801561038557600080fd5b506101f7610394366004611137565b60026020526000908152604090205481565b3480156103b257600080fd5b50610239601e81565b3480156103c757600080fd5b5061015f6103d6366004611137565b60009081526005602052604090205460ff1690565b3480156103f757600080fd5b506101f7610406366004611137565b60016020526000908152604090205481565b34801561042457600080fd5b506101f77f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561045857600080fd5b506101bd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048c57600080fd5b506101f761049b366004611137565b60006020819052908152604090205481565b3480156104b957600080fd5b5060035461023990640100000000900463ffffffff1681565b6002600454036105295760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f000000000000000000000000000000000000000000000000000000000000000082111561059e5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610520565b60008581526005602052604090205460ff16156105fd5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610520565b610606866107dd565b6106525760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610520565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f9916106d2918c918c91600401611322565b6020604051808303816000875af11580156106f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107159190611382565b61075a5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610520565b6000858152600560205260409020805460ff1916600117905561077f84848484610c1b565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b60008181036107ee57506000919050565b60035463ffffffff16805b63ffffffff8116600090815260026020526040902054840361081f575060019392505050565b8063ffffffff166000036108315750601e5b8061083b816113c1565b9150508163ffffffff168163ffffffff16036107f9575060009392505050565b60006000805160206115f983398151915283106108ba5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610520565b6000805160206115f983398151915282106109215760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610520565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099491906113e1565b90925090506000805160206115f983398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156109f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1d91906113e1565b509695505050505050565b60608167ffffffffffffffff811115610a4357610a4361141b565b604051908082528060200260200182016040528015610a6c578160200160208202803683370190505b50905060005b82811015610add57610aab848483818110610a8f57610a8f611431565b9050602002013560009081526005602052604090205460ff1690565b15610ad5576001828281518110610ac457610ac4611431565b911515602092830291909101909101525b600101610a72565b5092915050565b600260045403610b365760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610520565b600260045560008181526006602052604090205460ff1615610ba45760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b6064820152608401610520565b6000610baf82610e82565b6000838152600660205260409020805460ff191660011790559050610bd26110a0565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b3415610c875760405162461bcd60e51b815260206004820152603560248201527f4d6573736167652076616c756520697320737570706f73656420746f206265206044820152747a65726f20666f722045544820696e7374616e636560581b6064820152608401610520565b8015610cf25760405162461bcd60e51b815260206004820152603460248201527f526566756e642076616c756520697320737570706f73656420746f206265207a60448201527365726f20666f722045544820696e7374616e636560601b6064820152608401610520565b60006001600160a01b038516610d28847f0000000000000000000000000000000000000000000000000000000000000000611447565b604051600081818185875af1925050503d8060008114610d64576040519150601f19603f3d011682016040523d82523d6000602084013e610d69565b606091505b5050905080610dc85760405162461bcd60e51b815260206004820152602560248201527f7061796d656e7420746f205f726563697069656e7420646964206e6f7420676f604482015264207468727560d81b6064820152608401610520565b8215610e7b576040516001600160a01b038516908490600081818185875af1925050503d8060008114610e17576040519150601f19603f3d011682016040523d82523d6000602084013e610e1c565b606091505b50508091505080610e7b5760405162461bcd60e51b815260206004820152602360248201527f7061796d656e7420746f205f72656c6179657220646964206e6f7420676f207460448201526268727560e81b6064820152608401610520565b5050505050565b600354600090640100000000900463ffffffff16610ec17f00000000000000000000000000000000000000000000000000000000000000006002611574565b63ffffffff168163ffffffff1603610f345760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610520565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561101257610f7a60028661158c565b63ffffffff16600003610fb45763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150610fd0565b63ffffffff811660009081526020819052604090205492508391505b610ffb7f0000000000000000000000000000000000000000000000000000000000000000848461085b565b93506110086002866115b4565b9450600101610f3b565b50600354600090601e9061102d9063ffffffff1660016115dc565b611037919061158c565b6003805463ffffffff191663ffffffff83169081179091556000908152600260205260409020859055905061106d8660016115dc565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000034146111355760405162461bcd60e51b815260206004820152603860248201527f506c656173652073656e6420606d697844656e6f6d696e6174696f6e6020455460448201527f4820616c6f6e672077697468207472616e73616374696f6e00000000000000006064820152608401610520565b565b60006020828403121561114957600080fd5b5035919050565b6001600160a01b038116811461116557600080fd5b50565b803561117381611150565b919050565b60008060008060008060008060e0898b03121561119457600080fd5b883567ffffffffffffffff8111156111ab57600080fd5b8901601f81018b136111bc57600080fd5b803567ffffffffffffffff8111156111d357600080fd5b8b60208284010111156111e557600080fd5b60209182019950975089013595506040890135945061120660608a01611168565b935061121460808a01611168565b979a969950949793969295929450505060a08201359160c0013590565b60008060006060848603121561124657600080fd5b833561125181611150565b95602085013595506040909401359392505050565b6000806020838503121561127957600080fd5b823567ffffffffffffffff81111561129057600080fd5b8301601f810185136112a157600080fd5b803567ffffffffffffffff8111156112b857600080fd5b8560208260051b84010111156112cd57600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b8181101561131757835115158352602093840193909201916001016112f7565b509095945050505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b6006811015611377578151835260209283019290910190600101611358565b505050949350505050565b60006020828403121561139457600080fd5b815180151581146113a457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806113d7576113d76113ab565b6000190192915050565b600080604083850312156113f457600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561145a5761145a6113ab565b92915050565b6001815b600184111561149b5780850481111561147f5761147f6113ab565b600184161561148d57908102905b60019390931c928002611464565b935093915050565b6000826114b25750600161145a565b816114bf5750600061145a565b81600181146114d557600281146114df57611510565b600191505061145a565b60ff8411156114f0576114f06113ab565b6001841b915063ffffffff82111561150a5761150a6113ab565b5061145a565b5060208310610133831016604e8410600b8410161715611547575081810a63ffffffff811115611542576115426113ab565b61145a565b61155663ffffffff8484611460565b8063ffffffff0482111561156c5761156c6113ab565b029392505050565b60006113a463ffffffff841663ffffffff84166114a3565b600063ffffffff8316806115a2576115a2611405565b8063ffffffff84160691505092915050565b600063ffffffff8316806115ca576115ca611405565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561145a5761145a6113ab56fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a264697066735822122030cdb3d931ce1408ab144147edd7c76e28173ecad063b971dad09ea221811b3c64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$P = (xs) => xs.length > 1; class ETHTornado__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$O(args)) { + if (isSuperArgs$P(args)) { super(...args); } else { - super(_abi$1h, _bytecode$O, args[0]); + super(_abi$1k, _bytecode$P, args[0]); } } getDeployTransaction(_verifier, _hasher, _denomination, _merkleTreeHeight, overrides) { @@ -104532,17 +106392,17 @@ class ETHTornado__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$O; - static abi = _abi$1h; + static bytecode = _bytecode$P; + static abi = _abi$1k; static createInterface() { - return new Interface(_abi$1h); + return new Interface(_abi$1k); } static connect(address, runner) { - return new contract_Contract(address, _abi$1h, runner); + return new contract_Contract(address, _abi$1k, runner); } } -const _abi$1g = [ +const _abi$1j = [ { anonymous: false, inputs: [ @@ -104576,14 +106436,14 @@ const _abi$1g = [ type: "function" } ]; -const _bytecode$N = "0x6080604052348015600f57600080fd5b506101658061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063624fbfdc14610030575b600080fd5b61004361003e36600461008c565b610045565b005b336001600160a01b03167f50d6f3fc915efd1695d8a4cb50da185984f50d256834b9cb308295eb3c872c9c8383604051610080929190610100565b60405180910390a25050565b6000806020838503121561009f57600080fd5b823567ffffffffffffffff8111156100b657600080fd5b8301601f810185136100c757600080fd5b803567ffffffffffffffff8111156100de57600080fd5b8560208284010111156100f057600080fd5b6020919091019590945092505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea264697066735822122050c4191eadbd3981b9be4954b8abbadae91d7cfb743a47cc6930c8fe566e1c6e64736f6c634300081c0033"; -const isSuperArgs$N = (xs) => xs.length > 1; +const _bytecode$O = "0x6080604052348015600f57600080fd5b506101658061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063624fbfdc14610030575b600080fd5b61004361003e36600461008c565b610045565b005b336001600160a01b03167f50d6f3fc915efd1695d8a4cb50da185984f50d256834b9cb308295eb3c872c9c8383604051610080929190610100565b60405180910390a25050565b6000806020838503121561009f57600080fd5b823567ffffffffffffffff8111156100b657600080fd5b8301601f810185136100c757600080fd5b803567ffffffffffffffff8111156100de57600080fd5b8560208284010111156100f057600080fd5b6020919091019590945092505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f1916010191905056fea264697066735822122050c4191eadbd3981b9be4954b8abbadae91d7cfb743a47cc6930c8fe566e1c6e64736f6c634300081c0033"; +const isSuperArgs$O = (xs) => xs.length > 1; class Echoer__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$N(args)) { + if (isSuperArgs$O(args)) { super(...args); } else { - super(_abi$1g, _bytecode$N, args[0]); + super(_abi$1j, _bytecode$O, args[0]); } } getDeployTransaction(overrides) { @@ -104595,17 +106455,17 @@ class Echoer__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$N; - static abi = _abi$1g; + static bytecode = _bytecode$O; + static abi = _abi$1j; static createInterface() { - return new Interface(_abi$1g); + return new Interface(_abi$1j); } static connect(address, runner) { - return new contract_Contract(address, _abi$1g, runner); + return new contract_Contract(address, _abi$1j, runner); } } -const _abi$1f = [ +const _abi$1i = [ { inputs: [ { @@ -104667,6 +106527,25 @@ const _abi$1f = [ name: "Deposit", type: "event" }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "commitment", + type: "bytes32" + }, + { + indexed: false, + internalType: "address", + name: "owner", + type: "address" + } + ], + name: "VerifiedCommitment", + type: "event" + }, { anonymous: false, inputs: [ @@ -104698,6 +106577,32 @@ const _abi$1f = [ name: "Withdrawal", type: "event" }, + { + inputs: [], + name: "COMMITMENT_TYPE", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "COMMITMENT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [], name: "FIELD_SIZE", @@ -104724,6 +106629,19 @@ const _abi$1f = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "WITNESS_TYPE_STRING", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [], name: "ZERO_VALUE", @@ -104799,93 +106717,16 @@ const _abi$1f = [ inputs: [ { internalType: "bytes32", - name: "commitment", + name: "_commitment", type: "bytes32" }, { internalType: "address", name: "owner", type: "address" - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256" - }, - { - internalType: "uint8", - name: "v", - type: "uint8" - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32" - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32" } ], - name: "depositWithPermit", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "bytes32", - name: "commitment", - type: "bytes32" - }, - { - internalType: "address", - name: "owner", - type: "address" - }, - { - components: [ - { - components: [ - { - internalType: "address", - name: "token", - type: "address" - }, - { - internalType: "uint256", - name: "amount", - type: "uint256" - } - ], - internalType: "struct ISignatureTransfer.TokenPermissions", - name: "permitted", - type: "tuple" - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256" - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256" - } - ], - internalType: "struct ISignatureTransfer.PermitTransferFrom", - name: "_permit", - type: "tuple" - }, - { - internalType: "bytes", - name: "_signature", - type: "bytes" - } - ], - name: "depositWithPermit2", + name: "depositCommitment", outputs: [], stateMutability: "nonpayable", type: "function" @@ -105079,6 +106920,72 @@ const _abi$1f = [ stateMutability: "view", type: "function" }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "bytes32[]", + name: "_commitments", + type: "bytes32[]" + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256" + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256" + }, + { + internalType: "bytes", + name: "_signature", + type: "bytes" + } + ], + name: "permit2Commitments", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "bytes32[]", + name: "_commitments", + type: "bytes32[]" + }, + { + internalType: "uint8", + name: "v", + type: "uint8" + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32" + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32" + } + ], + name: "permitCommitments", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, { inputs: [ { @@ -105124,6 +107031,25 @@ const _abi$1f = [ stateMutability: "view", type: "function" }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + name: "verifiedCommitments", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [], name: "verifier", @@ -105180,6 +107106,37 @@ const _abi$1f = [ stateMutability: "payable", type: "function" }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "instance", + type: "address" + }, + { + internalType: "bytes32", + name: "commitmentsHash", + type: "bytes32" + } + ], + internalType: "struct PermitTornado.PermitCommitments", + name: "permitData", + type: "tuple" + } + ], + name: "witness", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32" + } + ], + stateMutability: "pure", + type: "function" + }, { inputs: [ { @@ -105200,14 +107157,14 @@ const _abi$1f = [ type: "function" } ]; -const _bytecode$M = "0x610140604052600380546001600160401b031916905534801561002157600080fd5b506040516123cd3803806123cd83398101604081905261004091610434565b858585858584848484808360008263ffffffff16116100b25760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101085760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a9565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101905763ffffffff8116600090815260016020908152604080832085905590829052902082905561018683838061024f565b9150600101610143565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55505060016004558161021e5760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a9565b506001600160a01b0392831660c05260e05250908116610100529490941661012052506104de975050505050505050565b60006000805160206123ad83398151915283106102ae5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a9565b6000805160206123ad83398151915282106103155760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a9565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610364573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038891906104ba565b90925090506000805160206123ad83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041191906104ba565b509695505050505050565b6001600160a01b038116811461043157600080fd5b50565b60008060008060008060c0878903121561044d57600080fd5b86516104588161041c565b60208801519096506104698161041c565b60408801516060890151919650945063ffffffff8116811461048a57600080fd5b608088015190935061049b8161041c565b60a08801519092506104ac8161041c565b809150509295509295509295565b600080604083850312156104cd57600080fd5b505080516020909101519092909150565b60805160a05160c05160e0516101005161012051611e026105ab6000396000818161031a015261134e0152600081816105ad01528181610e1201528181610e7d01528181610f7d01528181610fb701528181611381015261168c01526000818161037e015281816106260152818161090a01528181610dce01528181610ea301528181610f4f015281816113a501526116b001526000818161022d015261078f0152600081816102b10152818161113f01526111e101526000818161052c01526112790152611e026000f3fe6080604052600436106101815760003560e01c80639fa12d0b116100d1578063e82955881161008a578063f178e47c11610064578063f178e47c1461054e578063f354822a1461057b578063fc0c546a1461059b578063fc7e9c6f146105cf57600080fd5b8063e8295588146104b9578063ec732959146104e6578063ed33639f1461051a57600080fd5b80639fa12d0b146103dd578063b214faa51461040a578063ba70f7571461041d578063c2b40ae414610447578063cd87a3b414610474578063e5285dcc1461048957600080fd5b80634ecf518b1161013e578063839df94511610118578063839df9451461033c5780638bca6d161461036c5780638ea3099e146103a057806390eeb02b146103c057600080fd5b80634ecf518b1461029f5780636d9833e3146102e8578063761f894e1461030857600080fd5b806312261ee71461018657806317cc915c146101c657806321a0adb6146102065780632b7ac3f31461021b5780632d0466ce1461024f578063414a37ba1461026f575b600080fd5b34801561019257600080fd5b506101a96e22d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d257600080fd5b506101f66101e13660046116d4565b60056020526000908152604090205460ff1681565b60405190151581526020016101bd565b61021961021436600461174e565b6105f4565b005b34801561022757600080fd5b506101a97f000000000000000000000000000000000000000000000000000000000000000081565b34801561025b57600080fd5b5061021961026a3660046117dc565b6108d3565b34801561027b57600080fd5b50610291600080516020611dad83398151915281565b6040519081526020016101bd565b3480156102ab57600080fd5b506102d37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101bd565b3480156102f457600080fd5b506101f66103033660046116d4565b6109aa565b34801561031457600080fd5b506101a97f000000000000000000000000000000000000000000000000000000000000000081565b34801561034857600080fd5b506101f66103573660046116d4565b60066020526000908152604090205460ff1681565b34801561037857600080fd5b506102917f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ac57600080fd5b506102916103bb366004611859565b610a28565b3480156103cc57600080fd5b506003546102d39063ffffffff1681565b3480156103e957600080fd5b506103fd6103f836600461188e565b610bf5565b6040516101bd9190611905565b6102196104183660046116d4565b610cb1565b34801561042957600080fd5b5060035463ffffffff16600090815260026020526040902054610291565b34801561045357600080fd5b506102916104623660046116d4565b60026020526000908152604090205481565b34801561048057600080fd5b506102d3601e81565b34801561049557600080fd5b506101f66104a43660046116d4565b60009081526005602052604090205460ff1690565b3480156104c557600080fd5b506102916104d43660046116d4565b60016020526000908152604090205481565b3480156104f257600080fd5b506102917f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561052657600080fd5b506101a97f000000000000000000000000000000000000000000000000000000000000000081565b34801561055a57600080fd5b506102916105693660046116d4565b60006020819052908152604090205481565b34801561058757600080fd5b5061021961059636600461194a565b610d7e565b3480156105a757600080fd5b506101a97f000000000000000000000000000000000000000000000000000000000000000081565b3480156105db57600080fd5b506003546102d390640100000000900463ffffffff1681565b60026004540361061f5760405162461bcd60e51b8152600401610616906119ac565b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156106945760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610616565b60008581526005602052604090205460ff16156106f35760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610616565b6106fc866109aa565b6107485760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610616565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f9916107c8918c918c91600401611a0c565b6020604051808303816000875af11580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a54565b6108505760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610616565b6000858152600560205260409020805460ff1916600117905561087584848484610edd565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b6002600454036108f55760405162461bcd60e51b8152600401610616906119ac565b600260049081556040805180820182523081527f00000000000000000000000000000000000000000000000000000000000000006020820152905163187945bd60e11b81526e22d473030f116ddee9f6b43ac78ba3926330f28b7a926109639288928a918991899101611a7d565b600060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b5050505061099e8561107f565b50506001600455505050565b60008181036109bb57506000919050565b60035463ffffffff16805b63ffffffff811660009081526002602052604090205484036109ec575060019392505050565b8063ffffffff166000036109fe5750601e5b80610a0881611b05565b9150508163ffffffff168163ffffffff16036109c6575060009392505050565b6000600080516020611dad8339815191528310610a875760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610616565b600080516020611dad8339815191528210610aee5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610616565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190611b25565b9092509050600080516020611dad83398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bea9190611b25565b509695505050505050565b60608167ffffffffffffffff811115610c1057610c10611b5f565b604051908082528060200260200182016040528015610c39578160200160208202803683370190505b50905060005b82811015610caa57610c78848483818110610c5c57610c5c611b75565b9050602002013560009081526005602052604090205460ff1690565b15610ca2576001828281518110610c9157610c91611b75565b911515602092830291909101909101525b600101610c3f565b5092915050565b600260045403610cd35760405162461bcd60e51b8152600401610616906119ac565b600260045560008181526006602052604090205460ff1615610d075760405162461bcd60e51b815260040161061690611b8b565b6000610d1282611126565b6000838152600660205260409020805460ff191660011790559050610d35611344565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b600260045403610da05760405162461bcd60e51b8152600401610616906119ac565b6002600490815560405163d505accf60e01b81526001600160a01b03878116928201929092523060248201527f000000000000000000000000000000000000000000000000000000000000000060448201526064810186905260ff8516608482015260a4810184905260c481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063d505accf9060e401600060405180830381600087803b158015610e5857600080fd5b505af1158015610e6c573d6000803e3d6000fd5b50610ec79250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905086307f00000000000000000000000000000000000000000000000000000000000000006113d3565b610ed08661107f565b5050600160045550505050565b803414610f455760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b6064820152608401610616565b610fa484610f73847f0000000000000000000000000000000000000000000000000000000000000000611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906114ff565b8115610fde57610fde6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846114ff565b8015611079576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114611031576040519150601f19603f3d011682016040523d82523d6000602084013e611036565b606091505b5050905080611077576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611075573d6000803e3d6000fd5b505b505b50505050565b60008181526006602052604090205460ff16156110ae5760405162461bcd60e51b815260040161061690611b8b565b60006110b982611126565b60008381526006602052604090819020805460ff191660011790555190915082907fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff1969061111a908490429063ffffffff929092168252602082015260400190565b60405180910390a25050565b600354600090640100000000900463ffffffff166111657f00000000000000000000000000000000000000000000000000000000000000006002611cf9565b63ffffffff168163ffffffff16036111d85760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610616565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff1610156112b65761121e600286611d11565b63ffffffff166000036112585763ffffffff8116600090815260016020908152604080832054918390529091208590558493509150611274565b63ffffffff811660009081526020819052604090205492508391505b61129f7f00000000000000000000000000000000000000000000000000000000000000008484610a28565b93506112ac600286611d39565b94506001016111df565b50600354600090601e906112d19063ffffffff166001611d61565b6112db9190611d11565b6003805463ffffffff191663ffffffff831690811790915560009081526002602052604090208590559050611311866001611d61565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036113cb576113c96001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001632307f00000000000000000000000000000000000000000000000000000000000000006113d3565b565b6113c9611618565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916114379190611d7d565b6000604051808303816000865af19150503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50915091508161148b57805181602001fd5b805115806114a85750808060200190518101906114a89190611a54565b6110755760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b6064820152608401610616565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161155b9190611d7d565b6000604051808303816000865af19150503d8060008114611598576040519150601f19603f3d011682016040523d82523d6000602084013e61159d565b606091505b5091509150816115af57805181602001fd5b805115806115cc5750808060200190518101906115cc9190611a54565b6110775760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c656400006044820152606401610616565b341561167f5760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b6064820152608401610616565b6113c96001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006113d3565b6000602082840312156116e657600080fd5b5035919050565b60008083601f8401126116ff57600080fd5b50813567ffffffffffffffff81111561171757600080fd5b60208301915083602082850101111561172f57600080fd5b9250929050565b6001600160a01b038116811461174b57600080fd5b50565b60008060008060008060008060e0898b03121561176a57600080fd5b883567ffffffffffffffff81111561178157600080fd5b61178d8b828c016116ed565b909950975050602089013595506040890135945060608901356117af81611736565b935060808901356117bf81611736565b979a969950949793969295929450505060a08201359160c0013590565b600080600080600085870360e08112156117f557600080fd5b86359550602087013561180781611736565b94506080603f198201121561181b57600080fd5b5060408601925060c086013567ffffffffffffffff81111561183c57600080fd5b611848888289016116ed565b969995985093965092949392505050565b60008060006060848603121561186e57600080fd5b833561187981611736565b95602085013595506040909401359392505050565b600080602083850312156118a157600080fd5b823567ffffffffffffffff8111156118b857600080fd5b8301601f810185136118c957600080fd5b803567ffffffffffffffff8111156118e057600080fd5b8560208260051b84010111156118f557600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b8181101561193f578351151583526020938401939092019160010161191f565b509095945050505050565b60008060008060008060c0878903121561196357600080fd5b86359550602087013561197581611736565b945060408701359350606087013560ff8116811461199257600080fd5b9598949750929560808101359460a0909101359350915050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60e081526000611a2060e0830185876119e3565b9050602082018360005b6006811015611a49578151835260209283019290910190600101611a2a565b505050949350505050565b600060208284031215611a6657600080fd5b81518015158114611a7657600080fd5b9392505050565b60008635611a8a81611736565b6001600160a01b039081168352602088810135818501526040808a0135908501526060808a01359085015287518216608085015287015160a0840152851660c083015261010060e08301819052611ae490830184866119e3565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff821680611b1b57611b1b611aef565b6000190192915050565b60008060408385031215611b3857600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656040820152601960fa1b606082015260800190565b81810381811115611bdf57611bdf611aef565b92915050565b6001815b6001841115611c2057808504811115611c0457611c04611aef565b6001841615611c1257908102905b60019390931c928002611be9565b935093915050565b600082611c3757506001611bdf565b81611c4457506000611bdf565b8160018114611c5a5760028114611c6457611c95565b6001915050611bdf565b60ff841115611c7557611c75611aef565b6001841b915063ffffffff821115611c8f57611c8f611aef565b50611bdf565b5060208310610133831016604e8410600b8410161715611ccc575081810a63ffffffff811115611cc757611cc7611aef565b611bdf565b611cdb63ffffffff8484611be5565b8063ffffffff04821115611cf157611cf1611aef565b029392505050565b6000611a7663ffffffff841663ffffffff8416611c28565b600063ffffffff831680611d2757611d27611b49565b8063ffffffff84160691505092915050565b600063ffffffff831680611d4f57611d4f611b49565b8063ffffffff84160491505092915050565b63ffffffff8181168382160190811115611bdf57611bdf611aef565b6000825160005b81811015611d9e5760208186018101518583015201611d84565b50600092019182525091905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220748e3d83be321473aa2d748bbb2f7bd1ad8862ef1ae7adcacc51f10c40da0b2464736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$M = (xs) => xs.length > 1; +const _bytecode$N = "0x610140604052600380546001600160401b031916905534801561002157600080fd5b50604051612b91380380612b9183398101604081905261004091610434565b858585858584848484808360008263ffffffff16116100b25760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101085760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a9565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101905763ffffffff8116600090815260016020908152604080832085905590829052902082905561018683838061024f565b9150600101610143565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55505060016004558161021e5760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a9565b506001600160a01b0392831660c05260e05250908116610100529490941661012052506104de975050505050505050565b6000600080516020612b7183398151915283106102ae5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a9565b600080516020612b7183398151915282106103155760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a9565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610364573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038891906104ba565b9092509050600080516020612b7183398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041191906104ba565b509695505050505050565b6001600160a01b038116811461043157600080fd5b50565b60008060008060008060c0878903121561044d57600080fd5b86516104588161041c565b60208801519096506104698161041c565b60408801516060890151919650945063ffffffff8116811461048a57600080fd5b608088015190935061049b8161041c565b60a08801519092506104ac8161041c565b809150509295509295509295565b600080604083850312156104cd57600080fd5b505080516020909101519092909150565b60805160a05160c05160e05161010051610120516125c66105ab600039600081816103b301526119460152600081816106d101528181610ba101528181610c0a015281816111eb015281816113be015281816113f8015281816119790152611b5801526000818161042c015281816107a801528181610b0501528181611192015281816113900152818161199d0152611b7c0152600081816102d4015261091101526000818161032a0152818161173701526117d9015260008181610650015261187101526125c66000f3fe6080604052600436106101e35760003560e01c80639e67ab1e11610102578063e5285dcc11610095578063f15ea35911610064578063f15ea35914610672578063f178e47c14610692578063fc0c546a146106bf578063fc7e9c6f146106f357600080fd5b8063e5285dcc146105ad578063e8295588146105dd578063ec7329591461060a578063ed33639f1461063e57600080fd5b8063ba70f757116100d1578063ba70f75714610521578063c2b40ae41461054b578063c58b4c4914610578578063cd87a3b41461059857600080fd5b80639e67ab1e1461048b5780639fa12d0b146104c1578063a9f6f2b7146104ee578063b214faa51461050e57600080fd5b80636d9833e31161017a578063839df94511610149578063839df945146103ea5780638bca6d161461041a5780638ea3099e1461044e57806390eeb02b1461046e57600080fd5b80636d9833e31461036157806372286fcb14610381578063761f894e146103a15780637e89f31f146103d557600080fd5b806321a0adb6116101b657806321a0adb6146102ad5780632b7ac3f3146102c2578063414a37ba146102f65780634ecf518b1461031857600080fd5b806304f03273146101e857806312261ee714610210578063156e21521461024b57806317cc915c1461026d575b600080fd5b3480156101f457600080fd5b506101fd610718565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b506102336e22d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b039091168152602001610207565b34801561025757600080fd5b5061026061073b565b6040516102079190611bf0565b34801561027957600080fd5b5061029d610288366004611c0a565b60056020526000908152604090205460ff1681565b6040519015158152602001610207565b6102c06102bb366004611c84565b610776565b005b3480156102ce57600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b34801561030257600080fd5b506101fd60008051602061253683398151915281565b34801561032457600080fd5b5061034c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610207565b34801561036d57600080fd5b5061029d61037c366004611c0a565b610a55565b34801561038d57600080fd5b506102c061039c366004611ddc565b610ad3565b3480156103ad57600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e157600080fd5b50610260610c4c565b3480156103f657600080fd5b5061029d610405366004611c0a565b60066020526000908152604090205460ff1681565b34801561042657600080fd5b506101fd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561045a57600080fd5b506101fd610469366004611e56565b610c68565b34801561047a57600080fd5b5060035461034c9063ffffffff1681565b34801561049757600080fd5b506102336104a6366004611c0a565b6007602052600090815260409020546001600160a01b031681565b3480156104cd57600080fd5b506104e16104dc366004611e8b565b610e35565b6040516102079190611f02565b3480156104fa57600080fd5b506102c0610509366004611f47565b610ef1565b6102c061051c366004611c0a565b611026565b34801561052d57600080fd5b5060035463ffffffff166000908152600260205260409020546101fd565b34801561055757600080fd5b506101fd610566366004611c0a565b60026020526000908152604090205481565b34801561058457600080fd5b506101fd610593366004611f77565b6110f3565b3480156105a457600080fd5b5061034c601e81565b3480156105b957600080fd5b5061029d6105c8366004611c0a565b60009081526005602052604090205460ff1690565b3480156105e957600080fd5b506101fd6105f8366004611c0a565b60016020526000908152604090205481565b34801561061657600080fd5b506101fd7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561064a57600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b34801561067e57600080fd5b506102c061068d366004611fd1565b611160565b34801561069e57600080fd5b506101fd6106ad366004611c0a565b60006020819052908152604090205481565b3480156106cb57600080fd5b506102337f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ff57600080fd5b5060035461034c90640100000000900463ffffffff1681565b6040518060600160405280603b8152602001612556603b91398051906020012081565b6040518060600160405280603b8152602001612556603b91396040516020016107649190612066565b60405160208183030381529060405281565b6002600454036107a15760405162461bcd60e51b8152600401610798906120e9565b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156108165760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610798565b60008581526005602052604090205460ff16156108755760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610798565b61087e86610a55565b6108ca5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610798565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f99161094a918c918c91600401612149565b6020604051808303816000875af1158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190612191565b6109d25760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610798565b6000858152600560205260409020805460ff191660011790556109f78484848461131e565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b6000818103610a6657506000919050565b60035463ffffffff16805b63ffffffff81166000908152600260205260409020548403610a97575060019392505050565b8063ffffffff16600003610aa95750601e5b80610ab3816121c9565b9150508163ffffffff168163ffffffff1603610a71575060009392505050565b600260045403610af55760405162461bcd60e51b8152600401610798906120e9565b60026004558351600090610b29907f00000000000000000000000000000000000000000000000000000000000000006121e9565b9050600085604051602001610b3e9190612206565b60408051808303601f1901815290829052805160209091012063d505accf60e01b82526001600160a01b038981166004840152306024840152604483018590526064830182905260ff8816608484015260a4830187905260c483018690529092507f0000000000000000000000000000000000000000000000000000000000000000169063d505accf9060e401600060405180830381600087803b158015610be557600080fd5b505af1158015610bf9573d6000803e3d6000fd5b50610c349250506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690508830856114c0565b610c3e86886115ec565b505060016004555050505050565b6040518060600160405280603b8152602001612556603b913981565b60006000805160206125368339815191528310610cc75760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610798565b6000805160206125368339815191528210610d2e5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610798565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061223c565b909250905060008051602061253683398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a919061223c565b509695505050505050565b60608167ffffffffffffffff811115610e5057610e50611d12565b604051908082528060200260200182016040528015610e79578160200160208202803683370190505b50905060005b82811015610eea57610eb8848483818110610e9c57610e9c612276565b9050602002013560009081526005602052604090205460ff1690565b15610ee2576001828281518110610ed157610ed1612276565b911515602092830291909101909101525b600101610e7f565b5092915050565b600260045403610f135760405162461bcd60e51b8152600401610798906120e9565b60026004556000828152600760205260409020546001600160a01b03828116911614610f795760405162461bcd60e51b8152602060048201526015602482015274155b985c1c1c9bdd99590818dbdb5b5a5d1b595b9d605a1b6044820152606401610798565b60008281526006602052604090205460ff1615610fa85760405162461bcd60e51b81526004016107989061228c565b6000610fb38361171e565b60008481526006602052604090819020805460ff191660011790555190915083907fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff19690611014908490429063ffffffff929092168252602082015260400190565b60405180910390a25050600160045550565b6002600454036110485760405162461bcd60e51b8152600401610798906120e9565b600260045560008181526006602052604090205460ff161561107c5760405162461bcd60e51b81526004016107989061228c565b60006110878261171e565b6000838152600660205260409020805460ff1916600117905590506110aa61193c565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b60006040518060600160405280603b8152602001612556603b9139805160209182012083518483015160405161114394019283526001600160a01b03919091166020830152604082015260600190565b604051602081830303815290604052805190602001209050919050565b6002600454036111825760405162461bcd60e51b8152600401610798906120e9565b600260045584516000906111b6907f00000000000000000000000000000000000000000000000000000000000000006121e9565b90506000866040516020016111cb9190612206565b60408051601f19818403018152828252805160209182012060a0840183527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316606085019081526080850187905284528382018a905283830189905282518084018452308082528184018890528451808601909552845291830181905293506e22d473030f116ddee9f6b43ac78ba39263137c29fe929091908c90611277906110f3565b6040518060600160405280603b8152602001612556603b91396040516020016112a09190612066565b6040516020818303038152906040528a8a6040518863ffffffff1660e01b81526004016112d397969594939291906122cd565b600060405180830381600087803b1580156112ed57600080fd5b505af1158015611301573d6000803e3d6000fd5b5050505061130f87896115ec565b50506001600455505050505050565b8034146113865760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b6064820152608401610798565b6113e5846113b4847f000000000000000000000000000000000000000000000000000000000000000061236e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906119cb565b811561141f5761141f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846119cb565b80156114ba576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114611472576040519150601f19603f3d011682016040523d82523d6000602084013e611477565b606091505b50509050806114b8576040516001600160a01b0385169083156108fc029084906000818181858888f193505050501580156114b6573d6000803e3d6000fd5b505b505b50505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916115249190612381565b6000604051808303816000865af19150503d8060008114611561576040519150601f19603f3d011682016040523d82523d6000602084013e611566565b606091505b50915091508161157857805181602001fd5b805115806115955750808060200190518101906115959190612191565b6114b65760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b6064820152608401610798565b60005b825181101561171957600083828151811061160c5761160c612276565b602090810291909101810151600081815260079092526040909120549091506001600160a01b0316156116815760405162461bcd60e51b815260206004820181905260248201527f54686520636f6d6d69746d656e7420686173206265656e2076657269666965646044820152606401610798565b60008181526006602052604090205460ff16156116b05760405162461bcd60e51b81526004016107989061228c565b60008181526007602090815260409182902080546001600160a01b0319166001600160a01b038716908117909155915191825282917fa9b0993cd360203065cdbc30dd334b2a3eb63115cbb64d73246109d8af75a5f9910160405180910390a2506001016115ef565b505050565b600354600090640100000000900463ffffffff1661175d7f000000000000000000000000000000000000000000000000000000000000000060026124b1565b63ffffffff168163ffffffff16036117d05760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610798565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff1610156118ae576118166002866124c9565b63ffffffff166000036118505763ffffffff811660009081526001602090815260408083205491839052909120859055849350915061186c565b63ffffffff811660009081526020819052604090205492508391505b6118977f00000000000000000000000000000000000000000000000000000000000000008484610c68565b93506118a46002866124f1565b94506001016117d7565b50600354600090601e906118c99063ffffffff166001612519565b6118d391906124c9565b6003805463ffffffff191663ffffffff831690811790915560009081526002602052604090208590559050611909866001612519565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036119c3576119c16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001632307f00000000000000000000000000000000000000000000000000000000000000006114c0565b565b6119c1611ae4565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611a279190612381565b6000604051808303816000865af19150503d8060008114611a64576040519150601f19603f3d011682016040523d82523d6000602084013e611a69565b606091505b509150915081611a7b57805181602001fd5b80511580611a98575080806020019051810190611a989190612191565b6114b85760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c656400006044820152606401610798565b3415611b4b5760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b6064820152608401610798565b6119c16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006114c0565b60005b83811015611bbb578181015183820152602001611ba3565b50506000910152565b60008151808452611bdc816020860160208601611ba0565b601f01601f19169290920160200192915050565b602081526000611c036020830184611bc4565b9392505050565b600060208284031215611c1c57600080fd5b5035919050565b60008083601f840112611c3557600080fd5b50813567ffffffffffffffff811115611c4d57600080fd5b602083019150836020828501011115611c6557600080fd5b9250929050565b6001600160a01b0381168114611c8157600080fd5b50565b60008060008060008060008060e0898b031215611ca057600080fd5b883567ffffffffffffffff811115611cb757600080fd5b611cc38b828c01611c23565b90995097505060208901359550604089013594506060890135611ce581611c6c565b93506080890135611cf581611c6c565b979a969950949793969295929450505060a08201359160c0013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d5157611d51611d12565b604052919050565b600082601f830112611d6a57600080fd5b813567ffffffffffffffff811115611d8457611d84611d12565b8060051b611d9460208201611d28565b91825260208185018101929081019086841115611db057600080fd5b6020860192505b83831015611dd2578235825260209283019290910190611db7565b9695505050505050565b600080600080600060a08688031215611df457600080fd5b8535611dff81611c6c565b9450602086013567ffffffffffffffff811115611e1b57600080fd5b611e2788828901611d59565b945050604086013560ff81168114611e3e57600080fd5b94979396509394606081013594506080013592915050565b600080600060608486031215611e6b57600080fd5b8335611e7681611c6c565b95602085013595506040909401359392505050565b60008060208385031215611e9e57600080fd5b823567ffffffffffffffff811115611eb557600080fd5b8301601f81018513611ec657600080fd5b803567ffffffffffffffff811115611edd57600080fd5b8560208260051b8401011115611ef257600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b81811015611f3c5783511515835260209384019390920191600101611f1c565b509095945050505050565b60008060408385031215611f5a57600080fd5b823591506020830135611f6c81611c6c565b809150509250929050565b60006040828403128015611f8a57600080fd5b506040805190810167ffffffffffffffff81118282101715611fae57611fae611d12565b6040528235611fbc81611c6c565b81526020928301359281019290925250919050565b60008060008060008060a08789031215611fea57600080fd5b8635611ff581611c6c565b9550602087013567ffffffffffffffff81111561201157600080fd5b61201d89828a01611d59565b9550506040870135935060608701359250608087013567ffffffffffffffff81111561204857600080fd5b61205489828a01611c23565b979a9699509497509295939492505050565b7f5065726d6974436f6d6d69746d656e7473207769746e6573732900000000000081526000825161209e81601a850160208701611ba0565b7f546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75601a9390910192830152506d696e7432353620616d6f756e742960901b603a820152604801919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60e08152600061215d60e083018587612120565b9050602082018360005b6006811015612186578151835260209283019290910190600101612167565b505050949350505050565b6000602082840312156121a357600080fd5b81518015158114611c0357600080fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806121df576121df6121b3565b6000190192915050565b8082028115828204841417612200576122006121b3565b92915050565b8151600090829060208501835b82811015612231578151845260209384019390910190600101612213565b509195945050505050565b6000806040838503121561224f57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656040820152601960fa1b606082015260800190565b6122eb81895180516001600160a01b03168252602090810151910152565b602088015160408201526040880151606082015261231f608082018880516001600160a01b03168252602090810151910152565b60018060a01b03861660c08201528460e0820152610140610100820152600061234c610140830186611bc4565b828103610120840152612360818587612120565b9a9950505050505050505050565b81810381811115612200576122006121b3565b60008251612393818460208701611ba0565b9190910192915050565b6001815b60018411156123d8578085048111156123bc576123bc6121b3565b60018416156123ca57908102905b60019390931c9280026123a1565b935093915050565b6000826123ef57506001612200565b816123fc57506000612200565b8160018114612412576002811461241c5761244d565b6001915050612200565b60ff84111561242d5761242d6121b3565b6001841b915063ffffffff821115612447576124476121b3565b50612200565b5060208310610133831016604e8410600b8410161715612484575081810a63ffffffff81111561247f5761247f6121b3565b612200565b61249363ffffffff848461239d565b8063ffffffff048211156124a9576124a96121b3565b029392505050565b6000611c0363ffffffff841663ffffffff84166123e0565b600063ffffffff8316806124df576124df612260565b8063ffffffff84160691505092915050565b600063ffffffff83168061250757612507612260565b8063ffffffff84160491505092915050565b63ffffffff8181168382160190811115612200576122006121b356fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015065726d6974436f6d6d69746d656e7473286164647265737320696e7374616e63652c6279746573333220636f6d6d69746d656e74734861736829a2646970667358221220154929f9a41ef21e6f1ac58d55712a26e4fe53fb384431d666fe2d06cdf5aaa864736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$N = (xs) => xs.length > 1; class PermitTornado__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$M(args)) { + if (isSuperArgs$N(args)) { super(...args); } else { - super(_abi$1f, _bytecode$M, args[0]); + super(_abi$1i, _bytecode$N, args[0]); } } getDeployTransaction(_verifier, _hasher, _denomination, _merkleTreeHeight, _token, _tornadoProxyLight, overrides) { @@ -105235,17 +107192,17 @@ class PermitTornado__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$M; - static abi = _abi$1f; + static bytecode = _bytecode$N; + static abi = _abi$1i; static createInterface() { - return new Interface(_abi$1f); + return new Interface(_abi$1i); } static connect(address, runner) { - return new contract_Contract(address, _abi$1f, runner); + return new contract_Contract(address, _abi$1i, runner); } } -const _abi$1e = [ +const _abi$1h = [ { inputs: [ { @@ -105271,14 +107228,14 @@ const _abi$1e = [ type: "function" } ]; -const _bytecode$L = "0x6080604052348015600f57600080fd5b5061109e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063695ef6f914610030575b600080fd5b61004361003e366004610eae565b610057565b604051901515815260200160405180910390f35b6000808380602001905181019061006e9190610f5a565b905060005b60088160ff161015610129577f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47828260ff16600881106100b5576100b5610fbe565b6020020151106101175760405162461bcd60e51b815260206004820152602260248201527f76657269666965722d70726f6f662d656c656d656e742d6774652d7072696d656044820152612d7160f01b60648201526084015b60405180910390fd5b8061012181610fea565b915050610073565b50610132610ca2565b6040805180820182528351815260208085015181830152908352815160808082018452858401518285019081526060808801519084015282528351808501855290860151815260a08601518184015281830152838201528151808301835260c0850151815260e0850151918101919091529082015260006101b1610321565b90506000604051806040016040528060008152602001600081525090506101f38183608001516000600781106101e9576101e9610fbe565b60200201516107ec565b905060005b60068110156102df577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187826006811061023457610234610fbe565b6020020151106102865760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015260640161010e565b6102d5826102d0856080015184600161029f9190611009565b600781106102af576102af610fbe565b60200201518a85600681106102c6576102c6610fbe565b602002015161088d565b6107ec565b91506001016101f8565b506103146102f0846000015161091b565b846020015184600001518560200151858760400151896040015189606001516109d5565b9450505050505b92915050565b610329610cf3565b6040805180820182527f2dbfc3ec62a3eee5a3b4b464bcf1f8527bbca12adea0f1f12033cd4f61b0e09181527f19e55bd0b72c126da18665039556776642ff82e2f347f24fcea2475f4db087df6020808301919091529083528151608080820184527f1ae724ab134e5a7c6bd8a116fa5505b259522c0f164a5e8126e3ec7d34465f6e8285019081527e9f1bcdc853f8e3531756bb625b0d1dc014f4ab57c3f79f4f4e2e7ef7e0ead6606080850191909152908352845180860186527f23a8ca5760457e726365b92fd0ceb486665797cd68c35dcffd8e4ae8066691e981527f13ec7182c9fd68331a10f8be0fe885d730de5c7f89aa7d0b7bafaa009bbc9e3e818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835180820185527f2f0c63d0c53b3dfbca27b6b43ae7fbf55a38d78a21470996485b03128accc2088186019081527e556502356e37ed150db2e36531b0f275fd6835c0fc1945922e270b48c48a86828501528152845180860186527f02644c27b5dbd793592a70b735e22c798a5e309fa17a992a7dc2a050e01b298f81527f194776b6a53439d7336f389d2a8f6651e40885f5ca2538b0dc9cb534fb23f7fa818601528185015282860152835180850185527f23df1bc9165e9c1c9b2bc036d8ebdd10e7aeae7e5e8019fde68aec7c818bb23e81527f0b6c92080d37c5fb2ddf30892a33665e5478432ef3f71ac8768ecbbe62c7789281850152818601805191909152845180860186527f1c7b2adf45e046caea000956b2ecb2d8617e710d2a7bb201a95ea276f92307b481527f2b15f07536f45948cf4abe6596637d902ffabb18c8c2f5c151544c294ce4a672818601528151850152845180860186527f1cecfe92882a8c835a47bf01bfa655cf628cbba7f81cf4042179fd13edcd6a3981527f0154bfbb2cb786ca247d4b69183d1751f267bbc7656be8d0f0e7a5a47e2c1101818601528151860152845180860186527f1584616a7423efcc72f69ea84fa0b2bc01433677297f4e8351bebfc15bcd0cda81527f0623755b1488526daa9fecf0e11b110dd6df12c461579d792e1db65af523c8be81860152815190930192909252835180850185527f12fbb5bfca9d61357ba2d641604cf4852e21ef54faa180fe539c18994dc1da5a81527f2f09dd9972a1af5f7bcfccf3d7ab600c9d898ea6d6933150ba0ae228ece17e5f81850152825190910152825180840184527f0adb513796fdf2103022c64151ce05f7c7a6d9200e8d819fa59e654fc4bfe83c81527f2d64f72ef4eddf9ca032058ed2bf691758387e913a77cf99d6a3cfb37c8ba7ee81840152815160a0015282518084019093527f21e7c9bffda74bfd2c4393b6803d775545de6fa89145f4a23476241d9881b66183527f0bbe41e52237ac13eb7b01f3cb999b7394d08734e71b1c3ada62713e17eb560c918301919091525160c0015290565b6040805180820190915260008082526020820152610808610d44565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808061084257fe5b50806108855760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015260640161010e565b505092915050565b60408051808201909152600080825260208201526108a9610d62565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa905080806108d857fe5b50806108855760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015260640161010e565b6040805180820190915260008082526020820152815115801561094057506020820151155b1561095e575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516109a3919061101c565b6109cd907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761103e565b905292915050565b60408051608080820183528a825260208083018a90528284018890526060808401879052845192830185528b83528282018a9052828501889052820185905283516018808252610320820190955260009491859190839082016103008036833701905050905060005b6004811015610c1f576000610a54826006611051565b9050858260048110610a6857610a68610fbe565b60200201515183610a7a836000611009565b81518110610a8a57610a8a610fbe565b602002602001018181525050858260048110610aa857610aa8610fbe565b60200201516020015183826001610abf9190611009565b81518110610acf57610acf610fbe565b602002602001018181525050848260048110610aed57610aed610fbe565b6020020151515183610b00836002611009565b81518110610b1057610b10610fbe565b602002602001018181525050848260048110610b2e57610b2e610fbe565b6020020151516001602002015183610b47836003611009565b81518110610b5757610b57610fbe565b602002602001018181525050848260048110610b7557610b75610fbe565b602002015160200151600060028110610b9057610b90610fbe565b602002015183610ba1836004611009565b81518110610bb157610bb1610fbe565b602002602001018181525050848260048110610bcf57610bcf610fbe565b602002015160200151600160028110610bea57610bea610fbe565b602002015183610bfb836005611009565b81518110610c0b57610c0b610fbe565b602090810291909101015250600101610a3e565b50610c28610d80565b6000602082602086026020860160086107d05a03fa90508080610c4757fe5b5080610c8d5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015260640161010e565b505115159d9c50505050505050505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610ccc610d9e565b8152602001610cee604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610d1d610d9e565b8152602001610d2a610d9e565b8152602001610d37610d9e565b8152602001610cee610dbe565b60405180608001604052806004906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280610db1610df7565b8152602001610cee610df7565b6040518060e001604052806007905b6040805180820190915260008082526020820152815260200190600190039081610dcd5790505090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e5457610e54610e15565b604052919050565b600082601f830112610e6d57600080fd5b610e7760c0610e2b565b8060c0840185811115610e8957600080fd5b845b81811015610ea3578035845260209384019301610e8b565b509095945050505050565b60008060e08385031215610ec157600080fd5b823567ffffffffffffffff811115610ed857600080fd5b8301601f81018513610ee957600080fd5b803567ffffffffffffffff811115610f0357610f03610e15565b610f16601f8201601f1916602001610e2b565b818152866020838501011115610f2b57600080fd5b81602084016020830137600060208383010152809450505050610f518460208501610e5c565b90509250929050565b60006101008284031215610f6d57600080fd5b82601f830112610f7c57600080fd5b610100610f8881610e2b565b908301908085831115610f9a57600080fd5b845b83811015610fb4578051835260209283019201610f9c565b5095945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff810361100057611000610fd4565b60010192915050565b8082018082111561031b5761031b610fd4565b60008261103957634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561031b5761031b610fd4565b808202811582820484141761031b5761031b610fd456fea2646970667358221220582b0c53304fb81b34031d12ae65a2c10ae44c3d4f7d6f3dffa078ee96b6cf3164736f6c634300081c0033"; -const isSuperArgs$L = (xs) => xs.length > 1; +const _bytecode$M = "0x6080604052348015600f57600080fd5b5061109e8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063695ef6f914610030575b600080fd5b61004361003e366004610eae565b610057565b604051901515815260200160405180910390f35b6000808380602001905181019061006e9190610f5a565b905060005b60088160ff161015610129577f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47828260ff16600881106100b5576100b5610fbe565b6020020151106101175760405162461bcd60e51b815260206004820152602260248201527f76657269666965722d70726f6f662d656c656d656e742d6774652d7072696d656044820152612d7160f01b60648201526084015b60405180910390fd5b8061012181610fea565b915050610073565b50610132610ca2565b6040805180820182528351815260208085015181830152908352815160808082018452858401518285019081526060808801519084015282528351808501855290860151815260a08601518184015281830152838201528151808301835260c0850151815260e0850151918101919091529082015260006101b1610321565b90506000604051806040016040528060008152602001600081525090506101f38183608001516000600781106101e9576101e9610fbe565b60200201516107ec565b905060005b60068110156102df577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187826006811061023457610234610fbe565b6020020151106102865760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015260640161010e565b6102d5826102d0856080015184600161029f9190611009565b600781106102af576102af610fbe565b60200201518a85600681106102c6576102c6610fbe565b602002015161088d565b6107ec565b91506001016101f8565b506103146102f0846000015161091b565b846020015184600001518560200151858760400151896040015189606001516109d5565b9450505050505b92915050565b610329610cf3565b6040805180820182527f2dbfc3ec62a3eee5a3b4b464bcf1f8527bbca12adea0f1f12033cd4f61b0e09181527f19e55bd0b72c126da18665039556776642ff82e2f347f24fcea2475f4db087df6020808301919091529083528151608080820184527f1ae724ab134e5a7c6bd8a116fa5505b259522c0f164a5e8126e3ec7d34465f6e8285019081527e9f1bcdc853f8e3531756bb625b0d1dc014f4ab57c3f79f4f4e2e7ef7e0ead6606080850191909152908352845180860186527f23a8ca5760457e726365b92fd0ceb486665797cd68c35dcffd8e4ae8066691e981527f13ec7182c9fd68331a10f8be0fe885d730de5c7f89aa7d0b7bafaa009bbc9e3e818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835180820185527f2f0c63d0c53b3dfbca27b6b43ae7fbf55a38d78a21470996485b03128accc2088186019081527e556502356e37ed150db2e36531b0f275fd6835c0fc1945922e270b48c48a86828501528152845180860186527f02644c27b5dbd793592a70b735e22c798a5e309fa17a992a7dc2a050e01b298f81527f194776b6a53439d7336f389d2a8f6651e40885f5ca2538b0dc9cb534fb23f7fa818601528185015282860152835180850185527f23df1bc9165e9c1c9b2bc036d8ebdd10e7aeae7e5e8019fde68aec7c818bb23e81527f0b6c92080d37c5fb2ddf30892a33665e5478432ef3f71ac8768ecbbe62c7789281850152818601805191909152845180860186527f1c7b2adf45e046caea000956b2ecb2d8617e710d2a7bb201a95ea276f92307b481527f2b15f07536f45948cf4abe6596637d902ffabb18c8c2f5c151544c294ce4a672818601528151850152845180860186527f1cecfe92882a8c835a47bf01bfa655cf628cbba7f81cf4042179fd13edcd6a3981527f0154bfbb2cb786ca247d4b69183d1751f267bbc7656be8d0f0e7a5a47e2c1101818601528151860152845180860186527f1584616a7423efcc72f69ea84fa0b2bc01433677297f4e8351bebfc15bcd0cda81527f0623755b1488526daa9fecf0e11b110dd6df12c461579d792e1db65af523c8be81860152815190930192909252835180850185527f12fbb5bfca9d61357ba2d641604cf4852e21ef54faa180fe539c18994dc1da5a81527f2f09dd9972a1af5f7bcfccf3d7ab600c9d898ea6d6933150ba0ae228ece17e5f81850152825190910152825180840184527f0adb513796fdf2103022c64151ce05f7c7a6d9200e8d819fa59e654fc4bfe83c81527f2d64f72ef4eddf9ca032058ed2bf691758387e913a77cf99d6a3cfb37c8ba7ee81840152815160a0015282518084019093527f21e7c9bffda74bfd2c4393b6803d775545de6fa89145f4a23476241d9881b66183527f0bbe41e52237ac13eb7b01f3cb999b7394d08734e71b1c3ada62713e17eb560c918301919091525160c0015290565b6040805180820190915260008082526020820152610808610d44565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808061084257fe5b50806108855760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015260640161010e565b505092915050565b60408051808201909152600080825260208201526108a9610d62565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa905080806108d857fe5b50806108855760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015260640161010e565b6040805180820190915260008082526020820152815115801561094057506020820151155b1561095e575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516109a3919061101c565b6109cd907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761103e565b905292915050565b60408051608080820183528a825260208083018a90528284018890526060808401879052845192830185528b83528282018a9052828501889052820185905283516018808252610320820190955260009491859190839082016103008036833701905050905060005b6004811015610c1f576000610a54826006611051565b9050858260048110610a6857610a68610fbe565b60200201515183610a7a836000611009565b81518110610a8a57610a8a610fbe565b602002602001018181525050858260048110610aa857610aa8610fbe565b60200201516020015183826001610abf9190611009565b81518110610acf57610acf610fbe565b602002602001018181525050848260048110610aed57610aed610fbe565b6020020151515183610b00836002611009565b81518110610b1057610b10610fbe565b602002602001018181525050848260048110610b2e57610b2e610fbe565b6020020151516001602002015183610b47836003611009565b81518110610b5757610b57610fbe565b602002602001018181525050848260048110610b7557610b75610fbe565b602002015160200151600060028110610b9057610b90610fbe565b602002015183610ba1836004611009565b81518110610bb157610bb1610fbe565b602002602001018181525050848260048110610bcf57610bcf610fbe565b602002015160200151600160028110610bea57610bea610fbe565b602002015183610bfb836005611009565b81518110610c0b57610c0b610fbe565b602090810291909101015250600101610a3e565b50610c28610d80565b6000602082602086026020860160086107d05a03fa90508080610c4757fe5b5080610c8d5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015260640161010e565b505115159d9c50505050505050505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610ccc610d9e565b8152602001610cee604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610d1d610d9e565b8152602001610d2a610d9e565b8152602001610d37610d9e565b8152602001610cee610dbe565b60405180608001604052806004906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280610db1610df7565b8152602001610cee610df7565b6040518060e001604052806007905b6040805180820190915260008082526020820152815260200190600190039081610dcd5790505090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e5457610e54610e15565b604052919050565b600082601f830112610e6d57600080fd5b610e7760c0610e2b565b8060c0840185811115610e8957600080fd5b845b81811015610ea3578035845260209384019301610e8b565b509095945050505050565b60008060e08385031215610ec157600080fd5b823567ffffffffffffffff811115610ed857600080fd5b8301601f81018513610ee957600080fd5b803567ffffffffffffffff811115610f0357610f03610e15565b610f16601f8201601f1916602001610e2b565b818152866020838501011115610f2b57600080fd5b81602084016020830137600060208383010152809450505050610f518460208501610e5c565b90509250929050565b60006101008284031215610f6d57600080fd5b82601f830112610f7c57600080fd5b610100610f8881610e2b565b908301908085831115610f9a57600080fd5b845b83811015610fb4578051835260209283019201610f9c565b5095945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff810361100057611000610fd4565b60010192915050565b8082018082111561031b5761031b610fd4565b60008261103957634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561031b5761031b610fd4565b808202811582820484141761031b5761031b610fd456fea2646970667358221220582b0c53304fb81b34031d12ae65a2c10ae44c3d4f7d6f3dffa078ee96b6cf3164736f6c634300081c0033"; +const isSuperArgs$M = (xs) => xs.length > 1; class Verifier__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$L(args)) { + if (isSuperArgs$M(args)) { super(...args); } else { - super(_abi$1e, _bytecode$L, args[0]); + super(_abi$1h, _bytecode$M, args[0]); } } getDeployTransaction(overrides) { @@ -105290,17 +107247,17 @@ class Verifier__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$L; - static abi = _abi$1e; + static bytecode = _bytecode$M; + static abi = _abi$1h; static createInterface() { - return new Interface(_abi$1e); + return new Interface(_abi$1h); } static connect(address, runner) { - return new contract_Contract(address, _abi$1e, runner); + return new contract_Contract(address, _abi$1h, runner); } } -const _abi$1d = [ +const _abi$1g = [ { inputs: [ { @@ -105812,14 +107769,14 @@ const _abi$1d = [ type: "function" } ]; -const _bytecode$K = "0x610160604052600380546001600160401b031916905534801561002157600080fd5b506040516120673803806120678339810160408190526100409161048f565b848484848484848484808360008263ffffffff16116100b25760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101085760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a9565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101905763ffffffff811660009081526001602090815260408083208590559082905290208290556101868383806102aa565b9150600101610143565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55505060016004558161021e5760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a9565b506001600160a01b0392831660c05260e05250908116610100528a16935061028c925050505760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420434f4d5020746f6b656e206164647265737300000000000060448201526064016100a9565b5050506001600160a01b03938416610120525050166101405261054e565b600060008051602061204783398151915283106103095760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a9565b60008051602061204783398151915282106103705760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a9565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e3919061052a565b909250905060008051602061204783398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046c919061052a565b509695505050505050565b6001600160a01b038116811461048c57600080fd5b50565b600080600080600080600060e0888a0312156104aa57600080fd5b87516104b581610477565b60208901519097506104c681610477565b60408901519096506104d781610477565b60608901519095506104e881610477565b608089015160a08a0151919550935063ffffffff8116811461050957600080fd5b60c089015190925061051a81610477565b8091505092959891949750929550565b6000806040838503121561053d57600080fd5b505080516020909101519092909150565b60805160a05160c05160e051610100516101205161014051611a4b6105fc6000396000818161017d01526105d40152600081816102e5015261060501526000818161057801528181610ecc01528181610f0601526112600152600081816103690152818161074101528181610e9e015261128401526000818161023801526108aa01526000818161029c01528181610fe7015261108901526000818161051701526111210152611a4b6000f3fe6080604052600436106101665760003560e01c806390eeb02b116100d1578063e5285dcc1161008a578063ed33639f11610064578063ed33639f14610505578063f178e47c14610539578063fc0c546a14610566578063fc7e9c6f1461059a57600080fd5b8063e5285dcc14610474578063e8295588146104a4578063ec732959146104d157600080fd5b806390eeb02b146103ab5780639fa12d0b146103c8578063b214faa5146103f5578063ba70f75714610408578063c2b40ae414610432578063cd87a3b41461045f57600080fd5b80634ecf518b116101235780634ecf518b1461028a5780635aa6e675146102d35780636d9833e314610307578063839df945146103275780638bca6d16146103575780638ea3099e1461038b57600080fd5b8063109d0af81461016b57806317cc915c146101bc5780631bd85bdb146101fc57806321a0adb6146102135780632b7ac3f314610226578063414a37ba1461025a575b600080fd5b34801561017757600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c857600080fd5b506101ec6101d73660046114ef565b60056020526000908152604090205460ff1681565b60405190151581526020016101b3565b34801561020857600080fd5b506102116105bf565b005b61021161022136600461152d565b6106e3565b34801561023257600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026657600080fd5b5061027c6000805160206119f683398151915281565b6040519081526020016101b3565b34801561029657600080fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101b3565b3480156102df57600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031357600080fd5b506101ec6103223660046114ef565b6109ee565b34801561033357600080fd5b506101ec6103423660046114ef565b60066020526000908152604090205460ff1681565b34801561036357600080fd5b5061027c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b5061027c6103a63660046115e6565b610a6c565b3480156103b757600080fd5b506003546102be9063ffffffff1681565b3480156103d457600080fd5b506103e86103e336600461161b565b610c39565b6040516101b39190611692565b6102116104033660046114ef565b610cf5565b34801561041457600080fd5b5060035463ffffffff1660009081526002602052604090205461027c565b34801561043e57600080fd5b5061027c61044d3660046114ef565b60026020526000908152604090205481565b34801561046b57600080fd5b506102be601e81565b34801561048057600080fd5b506101ec61048f3660046114ef565b60009081526005602052604090205460ff1690565b3480156104b057600080fd5b5061027c6104bf3660046114ef565b60016020526000908152604090205481565b3480156104dd57600080fd5b5061027c7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561051157600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561054557600080fd5b5061027c6105543660046114ef565b60006020819052908152604090205481565b34801561057257600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a657600080fd5b506003546102be90640100000000900463ffffffff1681565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb907f00000000000000000000000000000000000000000000000000000000000000009083906370a0823190602401602060405180830381865afa15801561064d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067191906116d7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156106bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e091906116f0565b50565b60026004540361073a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156107af5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610731565b60008581526005602052604090205460ff161561080e5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610731565b610817866109ee565b6108635760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610731565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f9916108e3918c918c91600401611719565b6020604051808303816000875af1158015610902573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092691906116f0565b61096b5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610731565b6000858152600560205260409020805460ff1916600117905561099084848484610e2c565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b60008181036109ff57506000919050565b60035463ffffffff16805b63ffffffff81166000908152600260205260409020548403610a30575060019392505050565b8063ffffffff16600003610a425750601e5b80610a4c8161178f565b9150508163ffffffff168163ffffffff1603610a0a575060009392505050565b60006000805160206119f68339815191528310610acb5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610731565b6000805160206119f68339815191528210610b325760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610731565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117af565b90925090506000805160206119f683398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906117af565b509695505050505050565b60608167ffffffffffffffff811115610c5457610c546117e9565b604051908082528060200260200182016040528015610c7d578160200160208202803683370190505b50905060005b82811015610cee57610cbc848483818110610ca057610ca06117ff565b9050602002013560009081526005602052604090205460ff1690565b15610ce6576001828281518110610cd557610cd56117ff565b911515602092830291909101909101525b600101610c83565b5092915050565b600260045403610d475760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610731565b600260045560008181526006602052604090205460ff1615610db55760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b6064820152608401610731565b6000610dc082610fce565b6000838152600660205260409020805460ff191660011790559050610de36111ec565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b803414610e945760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b6064820152608401610731565b610ef384610ec2847f0000000000000000000000000000000000000000000000000000000000000000611815565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906112aa565b8115610f2d57610f2d6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846112aa565b8015610fc8576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f80576040519150601f19603f3d011682016040523d82523d6000602084013e610f85565b606091505b5050905080610fc6576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015610fc4573d6000803e3d6000fd5b505b505b50505050565b600354600090640100000000900463ffffffff1661100d7f00000000000000000000000000000000000000000000000000000000000000006002611942565b63ffffffff168163ffffffff16036110805760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610731565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115e576110c660028661195a565b63ffffffff166000036111005763ffffffff811660009081526001602090815260408083205491839052909120859055849350915061111c565b63ffffffff811660009081526020819052604090205492508391505b6111477f00000000000000000000000000000000000000000000000000000000000000008484610a6c565b9350611154600286611982565b9450600101611087565b50600354600090601e906111799063ffffffff1660016119aa565b611183919061195a565b6003805463ffffffff191663ffffffff8316908117909155600090815260026020526040902085905590506111b98660016119aa565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b34156112535760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b6064820152608401610731565b6112a86001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006113c3565b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161130691906119c6565b6000604051808303816000865af19150503d8060008114611343576040519150601f19603f3d011682016040523d82523d6000602084013e611348565b606091505b50915091508161135a57805181602001fd5b8051158061137757508080602001905181019061137791906116f0565b610fc65760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c656400006044820152606401610731565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161142791906119c6565b6000604051808303816000865af19150503d8060008114611464576040519150601f19603f3d011682016040523d82523d6000602084013e611469565b606091505b50915091508161147b57805181602001fd5b8051158061149857508080602001905181019061149891906116f0565b610fc45760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b6064820152608401610731565b60006020828403121561150157600080fd5b5035919050565b6001600160a01b03811681146106e057600080fd5b803561152881611508565b919050565b60008060008060008060008060e0898b03121561154957600080fd5b883567ffffffffffffffff81111561156057600080fd5b8901601f81018b1361157157600080fd5b803567ffffffffffffffff81111561158857600080fd5b8b602082840101111561159a57600080fd5b6020918201995097508901359550604089013594506115bb60608a0161151d565b93506115c960808a0161151d565b979a969950949793969295929450505060a08201359160c0013590565b6000806000606084860312156115fb57600080fd5b833561160681611508565b95602085013595506040909401359392505050565b6000806020838503121561162e57600080fd5b823567ffffffffffffffff81111561164557600080fd5b8301601f8101851361165657600080fd5b803567ffffffffffffffff81111561166d57600080fd5b8560208260051b840101111561168257600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156116cc57835115158352602093840193909201916001016116ac565b509095945050505050565b6000602082840312156116e957600080fd5b5051919050565b60006020828403121561170257600080fd5b8151801515811461171257600080fd5b9392505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b600681101561176e57815183526020928301929091019060010161174f565b505050949350505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806117a5576117a5611779565b6000190192915050565b600080604083850312156117c257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561182857611828611779565b92915050565b6001815b60018411156118695780850481111561184d5761184d611779565b600184161561185b57908102905b60019390931c928002611832565b935093915050565b60008261188057506001611828565b8161188d57506000611828565b81600181146118a357600281146118ad576118de565b6001915050611828565b60ff8411156118be576118be611779565b6001841b915063ffffffff8211156118d8576118d8611779565b50611828565b5060208310610133831016604e8410600b8410161715611915575081810a63ffffffff81111561191057611910611779565b611828565b61192463ffffffff848461182e565b8063ffffffff0482111561193a5761193a611779565b029392505050565b600061171263ffffffff841663ffffffff8416611871565b600063ffffffff831680611970576119706117d3565b8063ffffffff84160691505092915050565b600063ffffffff831680611998576119986117d3565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561182857611828611779565b6000825160005b818110156119e757602081860181015185830152016119cd565b50600092019182525091905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a26469706673582212207ba9bd4e8d26bbfcb07faf36daf24a1575b7c43d30b2842a5b2498dac1615c5d64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; -const isSuperArgs$K = (xs) => xs.length > 1; +const _bytecode$L = "0x610160604052600380546001600160401b031916905534801561002157600080fd5b506040516120673803806120678339810160408190526100409161048f565b848484848484848484808360008263ffffffff16116100b25760405162461bcd60e51b815260206004820152602360248201527f5f6c6576656c732073686f756c642062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b60208263ffffffff16106101085760405162461bcd60e51b815260206004820152601e60248201527f5f6c6576656c732073686f756c64206265206c657373207468616e203332000060448201526064016100a9565b63ffffffff821660a0526001600160a01b0381166080527f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c60005b8363ffffffff168163ffffffff1610156101905763ffffffff811660009081526001602090815260408083208590559082905290208290556101868383806102aa565b9150600101610143565b506000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55505060016004558161021e5760405162461bcd60e51b815260206004820152602560248201527f64656e6f6d696e6174696f6e2073686f756c6420626520677265617465722074604482015264068616e20360dc1b60648201526084016100a9565b506001600160a01b0392831660c05260e05250908116610100528a16935061028c925050505760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420434f4d5020746f6b656e206164647265737300000000000060448201526064016100a9565b5050506001600160a01b03938416610120525050166101405261054e565b600060008051602061204783398151915283106103095760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064016100a9565b60008051602061204783398151915282106103705760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b60648201526084016100a9565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa1580156103bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e3919061052a565b909250905060008051602061204783398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046c919061052a565b509695505050505050565b6001600160a01b038116811461048c57600080fd5b50565b600080600080600080600060e0888a0312156104aa57600080fd5b87516104b581610477565b60208901519097506104c681610477565b60408901519096506104d781610477565b60608901519095506104e881610477565b608089015160a08a0151919550935063ffffffff8116811461050957600080fd5b60c089015190925061051a81610477565b8091505092959891949750929550565b6000806040838503121561053d57600080fd5b505080516020909101519092909150565b60805160a05160c05160e051610100516101205161014051611a4b6105fc6000396000818161017d01526105d40152600081816102e5015261060501526000818161057801528181610ecc01528181610f0601526112600152600081816103690152818161074101528181610e9e015261128401526000818161023801526108aa01526000818161029c01528181610fe7015261108901526000818161051701526111210152611a4b6000f3fe6080604052600436106101665760003560e01c806390eeb02b116100d1578063e5285dcc1161008a578063ed33639f11610064578063ed33639f14610505578063f178e47c14610539578063fc0c546a14610566578063fc7e9c6f1461059a57600080fd5b8063e5285dcc14610474578063e8295588146104a4578063ec732959146104d157600080fd5b806390eeb02b146103ab5780639fa12d0b146103c8578063b214faa5146103f5578063ba70f75714610408578063c2b40ae414610432578063cd87a3b41461045f57600080fd5b80634ecf518b116101235780634ecf518b1461028a5780635aa6e675146102d35780636d9833e314610307578063839df945146103275780638bca6d16146103575780638ea3099e1461038b57600080fd5b8063109d0af81461016b57806317cc915c146101bc5780631bd85bdb146101fc57806321a0adb6146102135780632b7ac3f314610226578063414a37ba1461025a575b600080fd5b34801561017757600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c857600080fd5b506101ec6101d73660046114ef565b60056020526000908152604090205460ff1681565b60405190151581526020016101b3565b34801561020857600080fd5b506102116105bf565b005b61021161022136600461152d565b6106e3565b34801561023257600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026657600080fd5b5061027c6000805160206119f683398151915281565b6040519081526020016101b3565b34801561029657600080fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101b3565b3480156102df57600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031357600080fd5b506101ec6103223660046114ef565b6109ee565b34801561033357600080fd5b506101ec6103423660046114ef565b60066020526000908152604090205460ff1681565b34801561036357600080fd5b5061027c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b5061027c6103a63660046115e6565b610a6c565b3480156103b757600080fd5b506003546102be9063ffffffff1681565b3480156103d457600080fd5b506103e86103e336600461161b565b610c39565b6040516101b39190611692565b6102116104033660046114ef565b610cf5565b34801561041457600080fd5b5060035463ffffffff1660009081526002602052604090205461027c565b34801561043e57600080fd5b5061027c61044d3660046114ef565b60026020526000908152604090205481565b34801561046b57600080fd5b506102be601e81565b34801561048057600080fd5b506101ec61048f3660046114ef565b60009081526005602052604090205460ff1690565b3480156104b057600080fd5b5061027c6104bf3660046114ef565b60016020526000908152604090205481565b3480156104dd57600080fd5b5061027c7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b34801561051157600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561054557600080fd5b5061027c6105543660046114ef565b60006020819052908152604090205481565b34801561057257600080fd5b5061019f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a657600080fd5b506003546102be90640100000000900463ffffffff1681565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb907f00000000000000000000000000000000000000000000000000000000000000009083906370a0823190602401602060405180830381865afa15801561064d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067191906116d7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156106bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e091906116f0565b50565b60026004540361073a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026004557f00000000000000000000000000000000000000000000000000000000000000008211156107af5760405162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c75650000000000006044820152606401610731565b60008581526005602052604090205460ff161561080e5760405162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e74006044820152606401610731565b610817866109ee565b6108635760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f74000000006044820152606401610731565b6040805160c081018252878152602081018790526001600160a01b038681168284015285811660608301526080820185905260a08201849052915163695ef6f960e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163695ef6f9916108e3918c918c91600401611719565b6020604051808303816000875af1158015610902573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092691906116f0565b61096b5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b6044820152606401610731565b6000858152600560205260409020805460ff1916600117905561099084848484610e2c565b604080516001600160a01b03868116825260208201889052918101849052908416907fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319060600160405180910390a250506001600455505050505050565b60008181036109ff57506000919050565b60035463ffffffff16805b63ffffffff81166000908152600260205260409020548403610a30575060019392505050565b8063ffffffff16600003610a425750601e5b80610a4c8161178f565b9150508163ffffffff168163ffffffff1603610a0a575060009392505050565b60006000805160206119f68339815191528310610acb5760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c646044820152606401610731565b6000805160206119f68339815191528210610b325760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b6064820152608401610731565b60405163f47d33b560e01b81526004810184905260006024820181905284916001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117af565b90925090506000805160206119f683398151915284830860405163f47d33b560e01b815260048101829052602481018390529092506001600160a01b0387169063f47d33b5906044016040805180830381865afa158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906117af565b509695505050505050565b60608167ffffffffffffffff811115610c5457610c546117e9565b604051908082528060200260200182016040528015610c7d578160200160208202803683370190505b50905060005b82811015610cee57610cbc848483818110610ca057610ca06117ff565b9050602002013560009081526005602052604090205460ff1690565b15610ce6576001828281518110610cd557610cd56117ff565b911515602092830291909101909101525b600101610c83565b5092915050565b600260045403610d475760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610731565b600260045560008181526006602052604090205460ff1615610db55760405162461bcd60e51b815260206004820152602160248201527f54686520636f6d6d69746d656e7420686173206265656e207375626d697474656044820152601960fa1b6064820152608401610731565b6000610dc082610fce565b6000838152600660205260409020805460ff191660011790559050610de36111ec565b6040805163ffffffff8316815242602082015283917fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196910160405180910390a250506001600455565b803414610e945760405162461bcd60e51b815260206004820152603060248201527f496e636f727265637420726566756e6420616d6f756e7420726563656976656460448201526f08189e481d1a194818dbdb9d1c9858dd60821b6064820152608401610731565b610ef384610ec2847f0000000000000000000000000000000000000000000000000000000000000000611815565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906112aa565b8115610f2d57610f2d6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846112aa565b8015610fc8576000846001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f80576040519150601f19603f3d011682016040523d82523d6000602084013e610f85565b606091505b5050905080610fc6576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015610fc4573d6000803e3d6000fd5b505b505b50505050565b600354600090640100000000900463ffffffff1661100d7f00000000000000000000000000000000000000000000000000000000000000006002611942565b63ffffffff168163ffffffff16036110805760405162461bcd60e51b815260206004820152603060248201527f4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656160448201526f1d995cc818d85b88189948185919195960821b6064820152608401610731565b8083600080805b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16101561115e576110c660028661195a565b63ffffffff166000036111005763ffffffff811660009081526001602090815260408083205491839052909120859055849350915061111c565b63ffffffff811660009081526020819052604090205492508391505b6111477f00000000000000000000000000000000000000000000000000000000000000008484610a6c565b9350611154600286611982565b9450600101611087565b50600354600090601e906111799063ffffffff1660016119aa565b611183919061195a565b6003805463ffffffff191663ffffffff8316908117909155600090815260026020526040902085905590506111b98660016119aa565b6003805463ffffffff929092166401000000000267ffffffff000000001990921691909117905550939695505050505050565b34156112535760405162461bcd60e51b815260206004820152603060248201527f4554482076616c756520697320737570706f73656420746f206265203020666f60448201526f7220455243323020696e7374616e636560801b6064820152608401610731565b6112a86001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633307f00000000000000000000000000000000000000000000000000000000000000006113c3565b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161130691906119c6565b6000604051808303816000865af19150503d8060008114611343576040519150601f19603f3d011682016040523d82523d6000602084013e611348565b606091505b50915091508161135a57805181602001fd5b8051158061137757508080602001905181019061137791906116f0565b610fc65760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a20736166655472616e73666572206661696c656400006044820152606401610731565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161142791906119c6565b6000604051808303816000865af19150503d8060008114611464576040519150601f19603f3d011682016040523d82523d6000602084013e611469565b606091505b50915091508161147b57805181602001fd5b8051158061149857508080602001905181019061149891906116f0565b610fc45760405162461bcd60e51b815260206004820152602260248201527f5361666545524332303a20736166655472616e7366657246726f6d206661696c604482015261195960f21b6064820152608401610731565b60006020828403121561150157600080fd5b5035919050565b6001600160a01b03811681146106e057600080fd5b803561152881611508565b919050565b60008060008060008060008060e0898b03121561154957600080fd5b883567ffffffffffffffff81111561156057600080fd5b8901601f81018b1361157157600080fd5b803567ffffffffffffffff81111561158857600080fd5b8b602082840101111561159a57600080fd5b6020918201995097508901359550604089013594506115bb60608a0161151d565b93506115c960808a0161151d565b979a969950949793969295929450505060a08201359160c0013590565b6000806000606084860312156115fb57600080fd5b833561160681611508565b95602085013595506040909401359392505050565b6000806020838503121561162e57600080fd5b823567ffffffffffffffff81111561164557600080fd5b8301601f8101851361165657600080fd5b803567ffffffffffffffff81111561166d57600080fd5b8560208260051b840101111561168257600080fd5b6020919091019590945092505050565b602080825282518282018190526000918401906040840190835b818110156116cc57835115158352602093840193909201916001016116ac565b509095945050505050565b6000602082840312156116e957600080fd5b5051919050565b60006020828403121561170257600080fd5b8151801515811461171257600080fd5b9392505050565b60e081528260e08201528284610100830137600061010084830101526000610100601f19601f8601168301019050602082018360005b600681101561176e57815183526020928301929091019060010161174f565b505050949350505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8216806117a5576117a5611779565b6000190192915050565b600080604083850312156117c257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561182857611828611779565b92915050565b6001815b60018411156118695780850481111561184d5761184d611779565b600184161561185b57908102905b60019390931c928002611832565b935093915050565b60008261188057506001611828565b8161188d57506000611828565b81600181146118a357600281146118ad576118de565b6001915050611828565b60ff8411156118be576118be611779565b6001841b915063ffffffff8211156118d8576118d8611779565b50611828565b5060208310610133831016604e8410600b8410161715611915575081810a63ffffffff81111561191057611910611779565b611828565b61192463ffffffff848461182e565b8063ffffffff0482111561193a5761193a611779565b029392505050565b600061171263ffffffff841663ffffffff8416611871565b600063ffffffff831680611970576119706117d3565b8063ffffffff84160691505092915050565b600063ffffffff831680611998576119986117d3565b8063ffffffff84160491505092915050565b63ffffffff818116838216019081111561182857611828611779565b6000825160005b818110156119e757602081860181015185830152016119cd565b50600092019182525091905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a26469706673582212207ba9bd4e8d26bbfcb07faf36daf24a1575b7c43d30b2842a5b2498dac1615c5d64736f6c634300081c003330644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001"; +const isSuperArgs$L = (xs) => xs.length > 1; class CTornado__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$K(args)) { + if (isSuperArgs$L(args)) { super(...args); } else { - super(_abi$1d, _bytecode$K, args[0]); + super(_abi$1g, _bytecode$L, args[0]); } } getDeployTransaction(_governance, _comp, _verifier, _hasher, _denomination, _merkleTreeHeight, _token, overrides) { @@ -105849,17 +107806,17 @@ class CTornado__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$K; - static abi = _abi$1d; + static bytecode = _bytecode$L; + static abi = _abi$1g; static createInterface() { - return new Interface(_abi$1d); + return new Interface(_abi$1g); } static connect(address, runner) { - return new contract_Contract(address, _abi$1d, runner); + return new contract_Contract(address, _abi$1g, runner); } } -var index$A = /*#__PURE__*/Object.freeze({ +var index$B = /*#__PURE__*/Object.freeze({ __proto__: null, CTornado__factory: CTornado__factory, ERC20Tornado__factory: ERC20Tornado__factory, @@ -105867,14 +107824,14 @@ var index$A = /*#__PURE__*/Object.freeze({ Echoer__factory: Echoer__factory, PermitTornado__factory: PermitTornado__factory, Verifier__factory: Verifier__factory, - interfaces: index$B, - merkleTreeWithHistorySol: index$G, - mocks: index$E, - tornadoProxyLightSol: index$C, - tornadoSol: index$D + interfaces: index$C, + merkleTreeWithHistorySol: index$H, + mocks: index$F, + tornadoProxyLightSol: index$D, + tornadoSol: index$E }); -const _abi$1c = [ +const _abi$1f = [ { anonymous: false, inputs: [ @@ -106246,16 +108203,16 @@ const _abi$1c = [ } ]; class IENSRegistry__factory { - static abi = _abi$1c; + static abi = _abi$1f; static createInterface() { - return new Interface(_abi$1c); + return new Interface(_abi$1f); } static connect(address, runner) { - return new contract_Contract(address, _abi$1c, runner); + return new contract_Contract(address, _abi$1f, runner); } } -const _abi$1b = [ +const _abi$1e = [ { inputs: [ { @@ -106301,16 +108258,16 @@ const _abi$1b = [ } ]; class IENSResolver__factory { - static abi = _abi$1b; + static abi = _abi$1e; static createInterface() { - return new Interface(_abi$1b); + return new Interface(_abi$1e); } static connect(address, runner) { - return new contract_Contract(address, _abi$1b, runner); + return new contract_Contract(address, _abi$1e, runner); } } -const _abi$1a = [ +const _abi$1d = [ { inputs: [ { @@ -106356,16 +108313,16 @@ const _abi$1a = [ } ]; class IRelayerRegistry__factory { - static abi = _abi$1a; + static abi = _abi$1d; static createInterface() { - return new Interface(_abi$1a); + return new Interface(_abi$1d); } static connect(address, runner) { - return new contract_Contract(address, _abi$1a, runner); + return new contract_Contract(address, _abi$1d, runner); } } -const _abi$19 = [ +const _abi$1c = [ { inputs: [ { @@ -106455,14 +108412,14 @@ const _abi$19 = [ type: "function" } ]; -const _bytecode$J = "0x60c060405234801561001057600080fd5b50604051610b74380380610b7483398101604081905261002f9161004d565b6001600160601b0319606092831b8116608052911b1660a05261009e565b6000806040838503121561005f578182fd5b825161006a81610086565b602084015190925061007b81610086565b809150509250929050565b6001600160a01b038116811461009b57600080fd5b50565b60805160601c60a05160601c610a9b6100d96000398060b2528061040352806104f1525080608e528061013a528061021b5250610a9b6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631cb120d61461004657806339c16356146100645780634d47d7751461006c575b600080fd5b61004e61008c565b60405161005b9190610891565b60405180910390f35b61004e6100b0565b61007f61007a366004610702565b6100d4565b60405161005b91906108bf565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b606080835167ffffffffffffffff811180156100ef57600080fd5b5060405190808252806020026020018201604052801561012957816020015b6101166105cd565b81526020019060019003908161010e5790505b50905060005b84518110156105c5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be386838151811061017357fe5b60200260200101516040518263ffffffff1660e01b8152600401610197919061099d565b60206040518083038186803b1580156101af57600080fd5b505afa1580156101c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e791906106d4565b8282815181106101f357fe5b6020026020010151600001906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630178b8bf87848151811061025457fe5b60200260200101516040518263ffffffff1660e01b8152600401610278919061099d565b60206040518083038186803b15801561029057600080fd5b505afa1580156102a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c891906106d4565b905060005b85518110156104005760008784815181106102e457fe5b60200260200101518783815181106102f857fe5b60200260200101516040516020016103109190610875565b60405160208183030381529060405280519060200120604051602001610337929190610867565b60408051601f19818403018152908290528051602090910120631674750f60e21b825291506001600160a01b038416906359d1d43c9061037b9084906004016109a6565b60006040518083038186803b15801561039357600080fd5b505afa1580156103a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103cf91908101906107dc565b8585815181106103db57fe5b60200260200101516060015183601481106103f257fe5b6020020152506001016102cd565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b69fd4ab84848151811061043c57fe5b60200260200101516000015185858151811061045457fe5b6020026020010151600001516040518363ffffffff1660e01b815260040161047d9291906108a5565b60206040518083038186803b15801561049557600080fd5b505afa1580156104a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cd91906107bc565b8383815181106104d957fe5b602002602001015160400190151590811515815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b971a6bf84848151811061052a57fe5b6020026020010151600001516040518263ffffffff1660e01b81526004016105529190610891565b60206040518083038186803b15801561056a57600080fd5b505afa15801561057e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a2919061084f565b8383815181106105ae57fe5b60209081029190910181015101525060010161012f565b509392505050565b604051806080016040528060006001600160a01b0316815260200160008152602001600015158152602001610600610605565b905290565b6040518061028001604052806014905b60608152602001906001900390816106155790505090565b600082601f83011261063d578081fd5b813561065061064b826109f1565b6109ca565b818152915060208083019084810160005b848110156106c9578135870188603f82011261067c57600080fd5b8381013561068c61064b82610a11565b81815260408b818486010111156106a257600080fd5b82818501888401375060009181018601919091528552509282019290820190600101610661565b505050505092915050565b6000602082840312156106e5578081fd5b81516001600160a01b03811681146106fb578182fd5b9392505050565b60008060408385031215610714578081fd5b823567ffffffffffffffff8082111561072b578283fd5b818501915085601f83011261073e578283fd5b813561074c61064b826109f1565b80828252602080830192508086018a82838702890101111561076c578788fd5b8796505b8487101561078e578035845260019690960195928101928101610770565b5090965087013593505050808211156107a5578283fd5b506107b28582860161062d565b9150509250929050565b6000602082840312156107cd578081fd5b815180151581146106fb578182fd5b6000602082840312156107ed578081fd5b815167ffffffffffffffff811115610803578182fd5b8201601f81018413610813578182fd5b805161082161064b82610a11565b818152856020838501011115610835578384fd5b610846826020830160208601610a35565b95945050505050565b600060208284031215610860578081fd5b5051919050565b918252602082015260400190565b60008251610887818460208701610a35565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561099057878503603f19018452815180516001600160a01b03168652868101518787015260408082015115159087015260609081015160809187018290529086016103008701895b601481101561097b57888203607f1901835283518051610950818561099d565b61095d82828f8601610a35565b958c0195948c0194601f91909101601f191601925050600101610930565b509650505092850192908501906001016108e4565b5092979650505050505050565b90815260200190565b908152604060208201819052600390820152621d5c9b60ea1b606082015260800190565b60405181810167ffffffffffffffff811182821017156109e957600080fd5b604052919050565b600067ffffffffffffffff821115610a07578081fd5b5060209081020190565b600067ffffffffffffffff821115610a27578081fd5b50601f01601f191660200190565b60005b83811015610a50578181015183820152602001610a38565b83811115610a5f576000848401525b5050505056fea2646970667358221220628a366714cdda82fe91d785ad928e44e4b9f7976ed987e5fef72d207582dbaf64736f6c634300060c0033"; -const isSuperArgs$J = (xs) => xs.length > 1; +const _bytecode$K = "0x60c060405234801561001057600080fd5b50604051610b74380380610b7483398101604081905261002f9161004d565b6001600160601b0319606092831b8116608052911b1660a05261009e565b6000806040838503121561005f578182fd5b825161006a81610086565b602084015190925061007b81610086565b809150509250929050565b6001600160a01b038116811461009b57600080fd5b50565b60805160601c60a05160601c610a9b6100d96000398060b2528061040352806104f1525080608e528061013a528061021b5250610a9b6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631cb120d61461004657806339c16356146100645780634d47d7751461006c575b600080fd5b61004e61008c565b60405161005b9190610891565b60405180910390f35b61004e6100b0565b61007f61007a366004610702565b6100d4565b60405161005b91906108bf565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b606080835167ffffffffffffffff811180156100ef57600080fd5b5060405190808252806020026020018201604052801561012957816020015b6101166105cd565b81526020019060019003908161010e5790505b50905060005b84518110156105c5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be386838151811061017357fe5b60200260200101516040518263ffffffff1660e01b8152600401610197919061099d565b60206040518083038186803b1580156101af57600080fd5b505afa1580156101c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e791906106d4565b8282815181106101f357fe5b6020026020010151600001906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630178b8bf87848151811061025457fe5b60200260200101516040518263ffffffff1660e01b8152600401610278919061099d565b60206040518083038186803b15801561029057600080fd5b505afa1580156102a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c891906106d4565b905060005b85518110156104005760008784815181106102e457fe5b60200260200101518783815181106102f857fe5b60200260200101516040516020016103109190610875565b60405160208183030381529060405280519060200120604051602001610337929190610867565b60408051601f19818403018152908290528051602090910120631674750f60e21b825291506001600160a01b038416906359d1d43c9061037b9084906004016109a6565b60006040518083038186803b15801561039357600080fd5b505afa1580156103a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103cf91908101906107dc565b8585815181106103db57fe5b60200260200101516060015183601481106103f257fe5b6020020152506001016102cd565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b69fd4ab84848151811061043c57fe5b60200260200101516000015185858151811061045457fe5b6020026020010151600001516040518363ffffffff1660e01b815260040161047d9291906108a5565b60206040518083038186803b15801561049557600080fd5b505afa1580156104a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cd91906107bc565b8383815181106104d957fe5b602002602001015160400190151590811515815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b971a6bf84848151811061052a57fe5b6020026020010151600001516040518263ffffffff1660e01b81526004016105529190610891565b60206040518083038186803b15801561056a57600080fd5b505afa15801561057e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a2919061084f565b8383815181106105ae57fe5b60209081029190910181015101525060010161012f565b509392505050565b604051806080016040528060006001600160a01b0316815260200160008152602001600015158152602001610600610605565b905290565b6040518061028001604052806014905b60608152602001906001900390816106155790505090565b600082601f83011261063d578081fd5b813561065061064b826109f1565b6109ca565b818152915060208083019084810160005b848110156106c9578135870188603f82011261067c57600080fd5b8381013561068c61064b82610a11565b81815260408b818486010111156106a257600080fd5b82818501888401375060009181018601919091528552509282019290820190600101610661565b505050505092915050565b6000602082840312156106e5578081fd5b81516001600160a01b03811681146106fb578182fd5b9392505050565b60008060408385031215610714578081fd5b823567ffffffffffffffff8082111561072b578283fd5b818501915085601f83011261073e578283fd5b813561074c61064b826109f1565b80828252602080830192508086018a82838702890101111561076c578788fd5b8796505b8487101561078e578035845260019690960195928101928101610770565b5090965087013593505050808211156107a5578283fd5b506107b28582860161062d565b9150509250929050565b6000602082840312156107cd578081fd5b815180151581146106fb578182fd5b6000602082840312156107ed578081fd5b815167ffffffffffffffff811115610803578182fd5b8201601f81018413610813578182fd5b805161082161064b82610a11565b818152856020838501011115610835578384fd5b610846826020830160208601610a35565b95945050505050565b600060208284031215610860578081fd5b5051919050565b918252602082015260400190565b60008251610887818460208701610a35565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561099057878503603f19018452815180516001600160a01b03168652868101518787015260408082015115159087015260609081015160809187018290529086016103008701895b601481101561097b57888203607f1901835283518051610950818561099d565b61095d82828f8601610a35565b958c0195948c0194601f91909101601f191601925050600101610930565b509650505092850192908501906001016108e4565b5092979650505050505050565b90815260200190565b908152604060208201819052600390820152621d5c9b60ea1b606082015260800190565b60405181810167ffffffffffffffff811182821017156109e957600080fd5b604052919050565b600067ffffffffffffffff821115610a07578081fd5b5060209081020190565b600067ffffffffffffffff821115610a27578081fd5b50601f01601f191660200190565b60005b83811015610a50578181015183820152602001610a38565b83811115610a5f576000848401525b5050505056fea2646970667358221220628a366714cdda82fe91d785ad928e44e4b9f7976ed987e5fef72d207582dbaf64736f6c634300060c0033"; +const isSuperArgs$K = (xs) => xs.length > 1; class RelayerAggregator__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$J(args)) { + if (isSuperArgs$K(args)) { super(...args); } else { - super(_abi$19, _bytecode$J, args[0]); + super(_abi$1c, _bytecode$K, args[0]); } } getDeployTransaction(_IENSRegistry, _IRelayerRegistry, overrides) { @@ -106482,17 +108439,17 @@ class RelayerAggregator__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$J; - static abi = _abi$19; + static bytecode = _bytecode$K; + static abi = _abi$1c; static createInterface() { - return new Interface(_abi$19); + return new Interface(_abi$1c); } static connect(address, runner) { - return new contract_Contract(address, _abi$19, runner); + return new contract_Contract(address, _abi$1c, runner); } } -var index$z = /*#__PURE__*/Object.freeze({ +var index$A = /*#__PURE__*/Object.freeze({ __proto__: null, IENSRegistry__factory: IENSRegistry__factory, IENSResolver__factory: IENSResolver__factory, @@ -106500,7 +108457,7 @@ var index$z = /*#__PURE__*/Object.freeze({ RelayerAggregator__factory: RelayerAggregator__factory }); -const _abi$18 = [ +const _abi$1b = [ { inputs: [ { @@ -106724,14 +108681,14 @@ const _abi$18 = [ type: "function" } ]; -const _bytecode$I = "0x60c060405234801561001057600080fd5b5060405161155d38038061155d83398101604081905261002f9161004d565b6001600160601b0319606092831b8116608052911b1660a05261009e565b6000806040838503121561005f578182fd5b825161006a81610086565b602084015190925061007b81610086565b809150509250929050565b6001600160a01b038116811461009b57600080fd5b50565b60805160601c60a05160601c6114826100db6000398061024b528061059c528061068a52508061022752806102d352806103b452506114826000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063029fcae7146100675780631cb120d61461009057806339c16356146100a55780634d47d775146100ad5780639853d922146100cd578063f4eeefe9146100ed575b600080fd5b61007a610075366004610fa1565b610111565b60405161008791906112ee565b60405180910390f35b610098610225565b6040516100879190611118565b610098610249565b6100c06100bb366004610e93565b61026d565b6040516100879190611210565b6100e06100db366004610dcc565b61075e565b6040516100879190611146565b6101006100fb366004610f69565b6109dd565b60405161008795949392919061135f565b60608167ffffffffffffffff8111801561012a57600080fd5b50604051908082528060200260200182016040528015610154578160200160208202803683370190505b50905060005b8281101561021d57846001600160a01b0316639ae697bf85858481811061017d57fe5b90506020020160208101906101929190610dcc565b6040518263ffffffff1660e01b81526004016101ae9190611118565b60206040518083038186803b1580156101c657600080fd5b505afa1580156101da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fe91906110b5565b82828151811061020a57fe5b602090810291909101015260010161015a565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b606080835167ffffffffffffffff8111801561028857600080fd5b506040519080825280602002602001820160405280156102c257816020015b6102af610c79565b8152602001906001900390816102a75790505b50905060005b845181101561021d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be386838151811061030c57fe5b60200260200101516040518263ffffffff1660e01b81526004016103309190611332565b60206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103809190610def565b82828151811061038c57fe5b6020026020010151600001906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630178b8bf8784815181106103ed57fe5b60200260200101516040518263ffffffff1660e01b81526004016104119190611332565b60206040518083038186803b15801561042957600080fd5b505afa15801561043d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104619190610def565b905060005b855181101561059957600087848151811061047d57fe5b602002602001015187838151811061049157fe5b60200260200101516040516020016104a991906110fc565b604051602081830303815290604052805190602001206040516020016104d09291906110ee565b60408051601f19818403018152908290528051602090910120631674750f60e21b825291506001600160a01b038416906359d1d43c9061051490849060040161133b565b60006040518083038186803b15801561052c57600080fd5b505afa158015610540573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105689190810190611042565b85858151811061057457fe5b602002602001015160600151836014811061058b57fe5b602002015250600101610466565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b69fd4ab8484815181106105d557fe5b6020026020010151600001518585815181106105ed57fe5b6020026020010151600001516040518363ffffffff1660e01b815260040161061692919061112c565b60206040518083038186803b15801561062e57600080fd5b505afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4d565b83838151811061067257fe5b602002602001015160400190151590811515815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b971a6bf8484815181106106c357fe5b6020026020010151600001516040518263ffffffff1660e01b81526004016106eb9190611118565b60206040518083038186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b91906110b5565b83838151811061074757fe5b6020908102919091018101510152506001016102c8565b6060816001600160a01b031663da35c6646040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d191906110b5565b67ffffffffffffffff811180156107e757600080fd5b5060405190808252806020026020018201604052801561082157816020015b61080e610cb1565b8152602001906001900390816108065790505b50905060005b81518110156109d7576000806000806000806000808a6001600160a01b031663013cf08b8a6001016040518263ffffffff1660e01b815260040161086b9190611332565b6101006040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190610e0b565b97509750975097509750975097509750604051806101200160405280896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152602001858152602001848152602001831515815260200182151581526020018c6001600160a01b0316633e4f49e68c6001016040518263ffffffff1660e01b815260040161094d9190611332565b60206040518083038186803b15801561096557600080fd5b505afa158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d9190611023565b60068111156109a857fe5b8152508a8a815181106109b757fe5b602002602001018190525050505050505050508080600101915050610827565b50919050565b6000806000806000866001600160a01b0316639ae697bf876040518263ffffffff1660e01b8152600401610a119190611118565b60206040518083038186803b158015610a2957600080fd5b505afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6191906110b5565b6040516317977c6160e01b81529095506001600160a01b038816906317977c6190610a90908990600401611118565b60206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae091906110b5565b93508315610b7257604051631f27a4f360e11b81526001600160a01b03881690633e4f49e690610b14908790600401611332565b60206040518083038186803b158015610b2c57600080fd5b505afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b649190611023565b6006811115610b6f57fe5b92505b60405163a72edda360e01b81526001600160a01b0388169063a72edda390610b9e908990600401611118565b60206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee91906110b5565b604051631976849960e21b81529092506001600160a01b038816906365da126490610c1d908990600401611118565b60206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d9190610def565b90509295509295909350565b604051806080016040528060006001600160a01b0316815260200160008152602001600015158152602001610cac610cfd565b905290565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905290610100820190610cac565b6040518061028001604052806014905b6060815260200190600190039081610d0d5790505090565b600082601f830112610d35578081fd5b8135610d48610d43826113b2565b61138b565b818152915060208083019084810160005b84811015610dc1578135870188603f820112610d7457600080fd5b83810135610d84610d43826113d2565b81815260408b81848601011115610d9a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101610d59565b505050505092915050565b600060208284031215610ddd578081fd5b8135610de881611426565b9392505050565b600060208284031215610e00578081fd5b8151610de881611426565b600080600080600080600080610100898b031215610e27578384fd5b8851610e3281611426565b60208a0151909850610e4381611426565b8097505060408901519550606089015194506080890151935060a0890151925060c0890151610e718161143e565b60e08a0151909250610e828161143e565b809150509295985092959890939650565b60008060408385031215610ea5578182fd5b823567ffffffffffffffff80821115610ebc578384fd5b818501915085601f830112610ecf578384fd5b8135610edd610d43826113b2565b80828252602080830192508086018a828387028901011115610efd578889fd5b8896505b84871015610f1f578035845260019690960195928101928101610f01565b509096508701359350505080821115610f36578283fd5b50610f4385828601610d25565b9150509250929050565b600060208284031215610f5e578081fd5b8151610de88161143e565b60008060408385031215610f7b578182fd5b8235610f8681611426565b91506020830135610f9681611426565b809150509250929050565b600080600060408486031215610fb5578283fd5b8335610fc081611426565b9250602084013567ffffffffffffffff80821115610fdc578384fd5b818601915086601f830112610fef578384fd5b813581811115610ffd578485fd5b8760208083028501011115611010578485fd5b6020830194508093505050509250925092565b600060208284031215611034578081fd5b815160078110610de8578182fd5b600060208284031215611053578081fd5b815167ffffffffffffffff811115611069578182fd5b8201601f81018413611079578182fd5b8051611087610d43826113d2565b81815285602083850101111561109b578384fd5b6110ac8260208301602086016113f6565b95945050505050565b6000602082840312156110c6578081fd5b5051919050565b6001600160a01b03169052565b15159052565b600781106110ea57fe5b9052565b918252602082015260400190565b6000825161110e8184602087016113f6565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561120357815180516001600160a01b031685528681015161118a888701826110cd565b508086015185870152606080820151908601526080808201519086015260a0808201519086015260c0808201516111c3828801826110da565b505060e0808201516111d7828801826110da565b505061010090810151906111ed868201836110e0565b5050610120939093019290850190600101611163565b5091979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156112e157878503603f19018452815180516001600160a01b03168652868101518787015260408082015115159087015260609081015160809187018290529086016103008701895b60148110156112cc57888203607f19018352835180516112a18185611332565b6112ae82828f86016113f6565b958c0195948c0194601f91909101601f191601925050600101611281565b50965050509285019290850190600101611235565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156113265783518352928401929184019160010161130a565b50909695505050505050565b90815260200190565b908152604060208201819052600390820152621d5c9b60ea1b606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405181810167ffffffffffffffff811182821017156113aa57600080fd5b604052919050565b600067ffffffffffffffff8211156113c8578081fd5b5060209081020190565b600067ffffffffffffffff8211156113e8578081fd5b50601f01601f191660200190565b60005b838110156114115781810151838201526020016113f9565b83811115611420576000848401525b50505050565b6001600160a01b038116811461143b57600080fd5b50565b801515811461143b57600080fdfea26469706673582212209edead2cf5d16a9f09d7d75c5aa042cb00130c9febd0bf0e908fbf9c3f34f1a164736f6c634300060c0033"; -const isSuperArgs$I = (xs) => xs.length > 1; +const _bytecode$J = "0x60c060405234801561001057600080fd5b5060405161155d38038061155d83398101604081905261002f9161004d565b6001600160601b0319606092831b8116608052911b1660a05261009e565b6000806040838503121561005f578182fd5b825161006a81610086565b602084015190925061007b81610086565b809150509250929050565b6001600160a01b038116811461009b57600080fd5b50565b60805160601c60a05160601c6114826100db6000398061024b528061059c528061068a52508061022752806102d352806103b452506114826000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063029fcae7146100675780631cb120d61461009057806339c16356146100a55780634d47d775146100ad5780639853d922146100cd578063f4eeefe9146100ed575b600080fd5b61007a610075366004610fa1565b610111565b60405161008791906112ee565b60405180910390f35b610098610225565b6040516100879190611118565b610098610249565b6100c06100bb366004610e93565b61026d565b6040516100879190611210565b6100e06100db366004610dcc565b61075e565b6040516100879190611146565b6101006100fb366004610f69565b6109dd565b60405161008795949392919061135f565b60608167ffffffffffffffff8111801561012a57600080fd5b50604051908082528060200260200182016040528015610154578160200160208202803683370190505b50905060005b8281101561021d57846001600160a01b0316639ae697bf85858481811061017d57fe5b90506020020160208101906101929190610dcc565b6040518263ffffffff1660e01b81526004016101ae9190611118565b60206040518083038186803b1580156101c657600080fd5b505afa1580156101da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fe91906110b5565b82828151811061020a57fe5b602090810291909101015260010161015a565b509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b606080835167ffffffffffffffff8111801561028857600080fd5b506040519080825280602002602001820160405280156102c257816020015b6102af610c79565b8152602001906001900390816102a75790505b50905060005b845181101561021d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be386838151811061030c57fe5b60200260200101516040518263ffffffff1660e01b81526004016103309190611332565b60206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103809190610def565b82828151811061038c57fe5b6020026020010151600001906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630178b8bf8784815181106103ed57fe5b60200260200101516040518263ffffffff1660e01b81526004016104119190611332565b60206040518083038186803b15801561042957600080fd5b505afa15801561043d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104619190610def565b905060005b855181101561059957600087848151811061047d57fe5b602002602001015187838151811061049157fe5b60200260200101516040516020016104a991906110fc565b604051602081830303815290604052805190602001206040516020016104d09291906110ee565b60408051601f19818403018152908290528051602090910120631674750f60e21b825291506001600160a01b038416906359d1d43c9061051490849060040161133b565b60006040518083038186803b15801561052c57600080fd5b505afa158015610540573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105689190810190611042565b85858151811061057457fe5b602002602001015160600151836014811061058b57fe5b602002015250600101610466565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b69fd4ab8484815181106105d557fe5b6020026020010151600001518585815181106105ed57fe5b6020026020010151600001516040518363ffffffff1660e01b815260040161061692919061112c565b60206040518083038186803b15801561062e57600080fd5b505afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4d565b83838151811061067257fe5b602002602001015160400190151590811515815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b971a6bf8484815181106106c357fe5b6020026020010151600001516040518263ffffffff1660e01b81526004016106eb9190611118565b60206040518083038186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b91906110b5565b83838151811061074757fe5b6020908102919091018101510152506001016102c8565b6060816001600160a01b031663da35c6646040518163ffffffff1660e01b815260040160206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d191906110b5565b67ffffffffffffffff811180156107e757600080fd5b5060405190808252806020026020018201604052801561082157816020015b61080e610cb1565b8152602001906001900390816108065790505b50905060005b81518110156109d7576000806000806000806000808a6001600160a01b031663013cf08b8a6001016040518263ffffffff1660e01b815260040161086b9190611332565b6101006040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190610e0b565b97509750975097509750975097509750604051806101200160405280896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152602001858152602001848152602001831515815260200182151581526020018c6001600160a01b0316633e4f49e68c6001016040518263ffffffff1660e01b815260040161094d9190611332565b60206040518083038186803b15801561096557600080fd5b505afa158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d9190611023565b60068111156109a857fe5b8152508a8a815181106109b757fe5b602002602001018190525050505050505050508080600101915050610827565b50919050565b6000806000806000866001600160a01b0316639ae697bf876040518263ffffffff1660e01b8152600401610a119190611118565b60206040518083038186803b158015610a2957600080fd5b505afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6191906110b5565b6040516317977c6160e01b81529095506001600160a01b038816906317977c6190610a90908990600401611118565b60206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae091906110b5565b93508315610b7257604051631f27a4f360e11b81526001600160a01b03881690633e4f49e690610b14908790600401611332565b60206040518083038186803b158015610b2c57600080fd5b505afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b649190611023565b6006811115610b6f57fe5b92505b60405163a72edda360e01b81526001600160a01b0388169063a72edda390610b9e908990600401611118565b60206040518083038186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee91906110b5565b604051631976849960e21b81529092506001600160a01b038816906365da126490610c1d908990600401611118565b60206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d9190610def565b90509295509295909350565b604051806080016040528060006001600160a01b0316815260200160008152602001600015158152602001610cac610cfd565b905290565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905290610100820190610cac565b6040518061028001604052806014905b6060815260200190600190039081610d0d5790505090565b600082601f830112610d35578081fd5b8135610d48610d43826113b2565b61138b565b818152915060208083019084810160005b84811015610dc1578135870188603f820112610d7457600080fd5b83810135610d84610d43826113d2565b81815260408b81848601011115610d9a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101610d59565b505050505092915050565b600060208284031215610ddd578081fd5b8135610de881611426565b9392505050565b600060208284031215610e00578081fd5b8151610de881611426565b600080600080600080600080610100898b031215610e27578384fd5b8851610e3281611426565b60208a0151909850610e4381611426565b8097505060408901519550606089015194506080890151935060a0890151925060c0890151610e718161143e565b60e08a0151909250610e828161143e565b809150509295985092959890939650565b60008060408385031215610ea5578182fd5b823567ffffffffffffffff80821115610ebc578384fd5b818501915085601f830112610ecf578384fd5b8135610edd610d43826113b2565b80828252602080830192508086018a828387028901011115610efd578889fd5b8896505b84871015610f1f578035845260019690960195928101928101610f01565b509096508701359350505080821115610f36578283fd5b50610f4385828601610d25565b9150509250929050565b600060208284031215610f5e578081fd5b8151610de88161143e565b60008060408385031215610f7b578182fd5b8235610f8681611426565b91506020830135610f9681611426565b809150509250929050565b600080600060408486031215610fb5578283fd5b8335610fc081611426565b9250602084013567ffffffffffffffff80821115610fdc578384fd5b818601915086601f830112610fef578384fd5b813581811115610ffd578485fd5b8760208083028501011115611010578485fd5b6020830194508093505050509250925092565b600060208284031215611034578081fd5b815160078110610de8578182fd5b600060208284031215611053578081fd5b815167ffffffffffffffff811115611069578182fd5b8201601f81018413611079578182fd5b8051611087610d43826113d2565b81815285602083850101111561109b578384fd5b6110ac8260208301602086016113f6565b95945050505050565b6000602082840312156110c6578081fd5b5051919050565b6001600160a01b03169052565b15159052565b600781106110ea57fe5b9052565b918252602082015260400190565b6000825161110e8184602087016113f6565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561120357815180516001600160a01b031685528681015161118a888701826110cd565b508086015185870152606080820151908601526080808201519086015260a0808201519086015260c0808201516111c3828801826110da565b505060e0808201516111d7828801826110da565b505061010090810151906111ed868201836110e0565b5050610120939093019290850190600101611163565b5091979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156112e157878503603f19018452815180516001600160a01b03168652868101518787015260408082015115159087015260609081015160809187018290529086016103008701895b60148110156112cc57888203607f19018352835180516112a18185611332565b6112ae82828f86016113f6565b958c0195948c0194601f91909101601f191601925050600101611281565b50965050509285019290850190600101611235565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156113265783518352928401929184019160010161130a565b50909695505050505050565b90815260200190565b908152604060208201819052600390820152621d5c9b60ea1b606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60405181810167ffffffffffffffff811182821017156113aa57600080fd5b604052919050565b600067ffffffffffffffff8211156113c8578081fd5b5060209081020190565b600067ffffffffffffffff8211156113e8578081fd5b50601f01601f191660200190565b60005b838110156114115781810151838201526020016113f9565b83811115611420576000848401525b50505050565b6001600160a01b038116811461143b57600080fd5b50565b801515811461143b57600080fdfea26469706673582212209edead2cf5d16a9f09d7d75c5aa042cb00130c9febd0bf0e908fbf9c3f34f1a164736f6c634300060c0033"; +const isSuperArgs$J = (xs) => xs.length > 1; class Aggregator__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$I(args)) { + if (isSuperArgs$J(args)) { super(...args); } else { - super(_abi$18, _bytecode$I, args[0]); + super(_abi$1b, _bytecode$J, args[0]); } } getDeployTransaction(_ensRegistry, _relayerRegistry, overrides) { @@ -106751,17 +108708,17 @@ class Aggregator__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$I; - static abi = _abi$18; + static bytecode = _bytecode$J; + static abi = _abi$1b; static createInterface() { - return new Interface(_abi$18); + return new Interface(_abi$1b); } static connect(address, runner) { - return new contract_Contract(address, _abi$18, runner); + return new contract_Contract(address, _abi$1b, runner); } } -const _abi$17 = [ +const _abi$1a = [ { inputs: [ { @@ -106897,14 +108854,14 @@ const _abi$17 = [ type: "function" } ]; -const _bytecode$H = "0x608060405234801561001057600080fd5b50610ab8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063029fcae7146100465780639853d9221461006f578063f4eeefe91461008f575b600080fd5b61005961005436600461082b565b6100b3565b60405161006691906109e3565b60405180910390f35b61008261007d36600461072c565b6101c7565b6040516100669190610919565b6100a261009d3660046107f3565b610446565b604051610066959493929190610a30565b60608167ffffffffffffffff811180156100cc57600080fd5b506040519080825280602002602001820160405280156100f6578160200160208202803683370190505b50905060005b828110156101bf57846001600160a01b0316639ae697bf85858481811061011f57fe5b9050602002016020810190610134919061072c565b6040518263ffffffff1660e01b81526004016101509190610905565b60206040518083038186803b15801561016857600080fd5b505afa15801561017c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a091906108cc565b8282815181106101ac57fe5b60209081029190910101526001016100fc565b509392505050565b6060816001600160a01b031663da35c6646040518163ffffffff1660e01b815260040160206040518083038186803b15801561020257600080fd5b505afa158015610216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023a91906108cc565b67ffffffffffffffff8111801561025057600080fd5b5060405190808252806020026020018201604052801561028a57816020015b6102776106e2565b81526020019060019003908161026f5790505b50905060005b8151811015610440576000806000806000806000808a6001600160a01b031663013cf08b8a6001016040518263ffffffff1660e01b81526004016102d49190610a27565b6101006040518083038186803b1580156102ed57600080fd5b505afa158015610301573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610325919061076b565b97509750975097509750975097509750604051806101200160405280896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152602001858152602001848152602001831515815260200182151581526020018c6001600160a01b0316633e4f49e68c6001016040518263ffffffff1660e01b81526004016103b69190610a27565b60206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906108ad565b600681111561041157fe5b8152508a8a8151811061042057fe5b602002602001018190525050505050505050508080600101915050610290565b50919050565b6000806000806000866001600160a01b0316639ae697bf876040518263ffffffff1660e01b815260040161047a9190610905565b60206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca91906108cc565b6040516317977c6160e01b81529095506001600160a01b038816906317977c61906104f9908990600401610905565b60206040518083038186803b15801561051157600080fd5b505afa158015610525573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054991906108cc565b935083156105db57604051631f27a4f360e11b81526001600160a01b03881690633e4f49e69061057d908790600401610a27565b60206040518083038186803b15801561059557600080fd5b505afa1580156105a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd91906108ad565b60068111156105d857fe5b92505b60405163a72edda360e01b81526001600160a01b0388169063a72edda390610607908990600401610905565b60206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065791906108cc565b604051631976849960e21b81529092506001600160a01b038816906365da126490610686908990600401610905565b60206040518083038186803b15801561069e57600080fd5b505afa1580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d6919061074f565b90509295509295909350565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290529061010082015290565b60006020828403121561073d578081fd5b813561074881610a5c565b9392505050565b600060208284031215610760578081fd5b815161074881610a5c565b600080600080600080600080610100898b031215610787578384fd5b885161079281610a5c565b60208a01519098506107a381610a5c565b8097505060408901519550606089015194506080890151935060a0890151925060c08901516107d181610a74565b60e08a01519092506107e281610a74565b809150509295985092959890939650565b60008060408385031215610805578182fd5b823561081081610a5c565b9150602083013561082081610a5c565b809150509250929050565b60008060006040848603121561083f578283fd5b833561084a81610a5c565b9250602084013567ffffffffffffffff80821115610866578384fd5b818601915086601f830112610879578384fd5b813581811115610887578485fd5b876020808302850101111561089a578485fd5b6020830194508093505050509250925092565b6000602082840312156108be578081fd5b815160078110610748578182fd5b6000602082840312156108dd578081fd5b5051919050565b6001600160a01b03169052565b15159052565b6007811061090157fe5b9052565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b828110156109d657815180516001600160a01b031685528681015161095d888701826108e4565b508086015185870152606080820151908601526080808201519086015260a0808201519086015260c080820151610996828801826108f1565b505060e0808201516109aa828801826108f1565b505061010090810151906109c0868201836108f7565b5050610120939093019290850190600101610936565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610a1b578351835292840192918401916001016109ff565b50909695505050505050565b90815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6001600160a01b0381168114610a7157600080fd5b50565b8015158114610a7157600080fdfea2646970667358221220c68e065ff95a2c91c1e5904ff4ba8c709291d5227b10049b437e89d35c33af4d64736f6c634300060c0033"; -const isSuperArgs$H = (xs) => xs.length > 1; +const _bytecode$I = "0x608060405234801561001057600080fd5b50610ab8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063029fcae7146100465780639853d9221461006f578063f4eeefe91461008f575b600080fd5b61005961005436600461082b565b6100b3565b60405161006691906109e3565b60405180910390f35b61008261007d36600461072c565b6101c7565b6040516100669190610919565b6100a261009d3660046107f3565b610446565b604051610066959493929190610a30565b60608167ffffffffffffffff811180156100cc57600080fd5b506040519080825280602002602001820160405280156100f6578160200160208202803683370190505b50905060005b828110156101bf57846001600160a01b0316639ae697bf85858481811061011f57fe5b9050602002016020810190610134919061072c565b6040518263ffffffff1660e01b81526004016101509190610905565b60206040518083038186803b15801561016857600080fd5b505afa15801561017c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a091906108cc565b8282815181106101ac57fe5b60209081029190910101526001016100fc565b509392505050565b6060816001600160a01b031663da35c6646040518163ffffffff1660e01b815260040160206040518083038186803b15801561020257600080fd5b505afa158015610216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023a91906108cc565b67ffffffffffffffff8111801561025057600080fd5b5060405190808252806020026020018201604052801561028a57816020015b6102776106e2565b81526020019060019003908161026f5790505b50905060005b8151811015610440576000806000806000806000808a6001600160a01b031663013cf08b8a6001016040518263ffffffff1660e01b81526004016102d49190610a27565b6101006040518083038186803b1580156102ed57600080fd5b505afa158015610301573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610325919061076b565b97509750975097509750975097509750604051806101200160405280896001600160a01b03168152602001886001600160a01b03168152602001878152602001868152602001858152602001848152602001831515815260200182151581526020018c6001600160a01b0316633e4f49e68c6001016040518263ffffffff1660e01b81526004016103b69190610a27565b60206040518083038186803b1580156103ce57600080fd5b505afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040691906108ad565b600681111561041157fe5b8152508a8a8151811061042057fe5b602002602001018190525050505050505050508080600101915050610290565b50919050565b6000806000806000866001600160a01b0316639ae697bf876040518263ffffffff1660e01b815260040161047a9190610905565b60206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca91906108cc565b6040516317977c6160e01b81529095506001600160a01b038816906317977c61906104f9908990600401610905565b60206040518083038186803b15801561051157600080fd5b505afa158015610525573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054991906108cc565b935083156105db57604051631f27a4f360e11b81526001600160a01b03881690633e4f49e69061057d908790600401610a27565b60206040518083038186803b15801561059557600080fd5b505afa1580156105a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd91906108ad565b60068111156105d857fe5b92505b60405163a72edda360e01b81526001600160a01b0388169063a72edda390610607908990600401610905565b60206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065791906108cc565b604051631976849960e21b81529092506001600160a01b038816906365da126490610686908990600401610905565b60206040518083038186803b15801561069e57600080fd5b505afa1580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d6919061074f565b90509295509295909350565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290529061010082015290565b60006020828403121561073d578081fd5b813561074881610a5c565b9392505050565b600060208284031215610760578081fd5b815161074881610a5c565b600080600080600080600080610100898b031215610787578384fd5b885161079281610a5c565b60208a01519098506107a381610a5c565b8097505060408901519550606089015194506080890151935060a0890151925060c08901516107d181610a74565b60e08a01519092506107e281610a74565b809150509295985092959890939650565b60008060408385031215610805578182fd5b823561081081610a5c565b9150602083013561082081610a5c565b809150509250929050565b60008060006040848603121561083f578283fd5b833561084a81610a5c565b9250602084013567ffffffffffffffff80821115610866578384fd5b818601915086601f830112610879578384fd5b813581811115610887578485fd5b876020808302850101111561089a578485fd5b6020830194508093505050509250925092565b6000602082840312156108be578081fd5b815160078110610748578182fd5b6000602082840312156108dd578081fd5b5051919050565b6001600160a01b03169052565b15159052565b6007811061090157fe5b9052565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b828110156109d657815180516001600160a01b031685528681015161095d888701826108e4565b508086015185870152606080820151908601526080808201519086015260a0808201519086015260c080820151610996828801826108f1565b505060e0808201516109aa828801826108f1565b505061010090810151906109c0868201836108f7565b5050610120939093019290850190600101610936565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610a1b578351835292840192918401916001016109ff565b50909695505050505050565b90815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6001600160a01b0381168114610a7157600080fd5b50565b8015158114610a7157600080fdfea2646970667358221220c68e065ff95a2c91c1e5904ff4ba8c709291d5227b10049b437e89d35c33af4d64736f6c634300060c0033"; +const isSuperArgs$I = (xs) => xs.length > 1; class GovernanceAggregator__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$H(args)) { + if (isSuperArgs$I(args)) { super(...args); } else { - super(_abi$17, _bytecode$H, args[0]); + super(_abi$1a, _bytecode$I, args[0]); } } getDeployTransaction(overrides) { @@ -106916,28 +108873,28 @@ class GovernanceAggregator__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$H; - static abi = _abi$17; + static bytecode = _bytecode$I; + static abi = _abi$1a; static createInterface() { - return new Interface(_abi$17); + return new Interface(_abi$1a); } static connect(address, runner) { return new contract_Contract( address, - _abi$17, + _abi$1a, runner ); } } -var index$y = /*#__PURE__*/Object.freeze({ +var index$z = /*#__PURE__*/Object.freeze({ __proto__: null, Aggregator__factory: Aggregator__factory, GovernanceAggregator__factory: GovernanceAggregator__factory, - relayerAggregatorSol: index$z + relayerAggregatorSol: index$A }); -const _abi$16 = [ +const _abi$19 = [ { inputs: [ { @@ -107000,14 +108957,14 @@ const _abi$16 = [ type: "function" } ]; -const _bytecode$G = "0x60a060405234801561001057600080fd5b506040516103a93803806103a98339818101604052602081101561003357600080fd5b50516001600160a01b0381161561004a5780610060565b73ce0042b868300000d44a59004da54a005ffdcf9f5b60601b6001600160601b031916608052604051309032907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35060805160601c6102e96100c06000398061010d528061029152506102e96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634af63f021461003b578063d5f39488146100e5575b600080fd5b6100e36004803603604081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610109915050565b005b6100ed61028f565b604080516001600160a01b039092168252519081900360200190f35b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634af63f0284846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561018e578181015183820152602001610176565b50505050905090810190601f1680156101bb5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156101db57600080fd5b505af11580156101ef573d6000803e3d6000fd5b505050506040513d602081101561020557600080fd5b505190506001600160a01b038116610254576040805162461bcd60e51b815260206004820152600d60248201526c11195c1b1bde4819985a5b1959609a1b604482015290519081900360640190fd5b6040516001600160a01b0382169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a3505050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212209824ac82969e56106968b899123a2ecac48f942b4ed3dcae2ced58022879d32364736f6c634300060c0033"; -const isSuperArgs$G = (xs) => xs.length > 1; +const _bytecode$H = "0x60a060405234801561001057600080fd5b506040516103a93803806103a98339818101604052602081101561003357600080fd5b50516001600160a01b0381161561004a5780610060565b73ce0042b868300000d44a59004da54a005ffdcf9f5b60601b6001600160601b031916608052604051309032907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a35060805160601c6102e96100c06000398061010d528061029152506102e96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634af63f021461003b578063d5f39488146100e5575b600080fd5b6100e36004803603604081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610109915050565b005b6100ed61028f565b604080516001600160a01b039092168252519081900360200190f35b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634af63f0284846040518363ffffffff1660e01b81526004018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561018e578181015183820152602001610176565b50505050905090810190601f1680156101bb5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156101db57600080fd5b505af11580156101ef573d6000803e3d6000fd5b505050506040513d602081101561020557600080fd5b505190506001600160a01b038116610254576040805162461bcd60e51b815260206004820152600d60248201526c11195c1b1bde4819985a5b1959609a1b604482015290519081900360640190fd5b6040516001600160a01b0382169033907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec2090600090a3505050565b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212209824ac82969e56106968b899123a2ecac48f942b4ed3dcae2ced58022879d32364736f6c634300060c0033"; +const isSuperArgs$H = (xs) => xs.length > 1; class Deployer__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$G(args)) { + if (isSuperArgs$H(args)) { super(...args); } else { - super(_abi$16, _bytecode$G, args[0]); + super(_abi$19, _bytecode$H, args[0]); } } getDeployTransaction(_deployer, overrides) { @@ -107019,17 +108976,17 @@ class Deployer__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$G; - static abi = _abi$16; + static bytecode = _bytecode$H; + static abi = _abi$19; static createInterface() { - return new Interface(_abi$16); + return new Interface(_abi$19); } static connect(address, runner) { - return new contract_Contract(address, _abi$16, runner); + return new contract_Contract(address, _abi$19, runner); } } -const _abi$15 = [ +const _abi$18 = [ { inputs: [ { @@ -107056,22 +109013,22 @@ const _abi$15 = [ } ]; class IDeployer__factory { - static abi = _abi$15; + static abi = _abi$18; static createInterface() { - return new Interface(_abi$15); + return new Interface(_abi$18); } static connect(address, runner) { - return new contract_Contract(address, _abi$15, runner); + return new contract_Contract(address, _abi$18, runner); } } -var index$x = /*#__PURE__*/Object.freeze({ +var index$y = /*#__PURE__*/Object.freeze({ __proto__: null, Deployer__factory: Deployer__factory, IDeployer__factory: IDeployer__factory }); -const _abi$14 = [ +const _abi$17 = [ { inputs: [ { @@ -107097,16 +109054,16 @@ const _abi$14 = [ } ]; class ITornadoRouter__factory { - static abi = _abi$14; + static abi = _abi$17; static createInterface() { - return new Interface(_abi$14); + return new Interface(_abi$17); } static connect(address, runner) { - return new contract_Contract(address, _abi$14, runner); + return new contract_Contract(address, _abi$17, runner); } } -const _abi$13 = [ +const _abi$16 = [ { inputs: [ { @@ -107472,14 +109429,14 @@ const _abi$13 = [ type: "function" } ]; -const _bytecode$F = "0x60a060405234801561001057600080fd5b5060405161146738038061146783398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6113c46100a3600039806103e552806105c052806105ed528061073a52806107e652506113c46000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80636c9be937116100715780636c9be9371461014d578063908e3b371461016057806392b65a4114610173578063b5b899b714610186578063cf552c8914610199578063f887ea40146101ac576100b4565b8063032bb443146100b957806310c13ac3146100e65780631ad058a9146100fb5780634ba16d9d1461011057806352c228e3146101235780635aa6e67514610138575b600080fd5b6100cc6100c7366004610e89565b6101b4565b6040516100dd959493929190611194565b60405180910390f35b6100ee6101fe565b6040516100dd9190611097565b61010e610109366004610ec8565b6102af565b005b61010e61011e366004610e89565b6103da565b61012b61047f565b6040516100dd91906110e4565b6101406105be565b6040516100dd9190611069565b61010e61015b366004610fd3565b6105e2565b61014061016e366004610e89565b610709565b61010e610181366004610f80565b61072f565b610140610194366004611005565b6107b4565b61010e6101a7366004611005565b6107db565b610140610a77565b60016020526000908152604090205460ff8082169161010081046001600160a01b031691600160a81b82041690600160b01b810462ffffff1690600160c81b900463ffffffff1685565b60025460609067ffffffffffffffff8111801561021a57600080fd5b50604051908082528060200260200182016040528015610244578160200160208202803683370190505b50905060005b6002548110156102ab576002818154811061026157fe5b9060005260206000200160009054906101000a90046001600160a01b031682828151811061028b57fe5b6001600160a01b039092166020928302919091019091015260010161024a565b5090565b600054610100900460ff16806102c857506102c8610a8c565b806102d6575060005460ff16155b6102fb5760405162461bcd60e51b81526004016102f290611214565b60405180910390fd5b600054610100900460ff16158015610326576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021781555b83518110156103c25761036e84828151811061036157fe5b6020026020010151610a92565b600284828151811061037c57fe5b6020908102919091018101515182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610349565b5080156103d5576000805461ff00191690555b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104225760405162461bcd60e51b81526004016102f2906112c2565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a890610474908390611069565b60405180910390a150565b60025460609067ffffffffffffffff8111801561049b57600080fd5b506040519080825280602002602001820160405280156104d557816020015b6104c2610d64565b8152602001906001900390816104ba5790505b50905060005b6002548110156102ab576000600282815481106104f457fe5b60009182526020808320909101546040805180820182526001600160a01b03928316808252808652600180865295839020835160a081018552815460ff8082161515835261010082049097168289015292985092969587019592949093850192600160a81b909204169081111561056757fe5b600181111561057257fe5b81529054600160b01b810462ffffff166020830152600160c81b900463ffffffff16604090910152905283518490849081106105aa57fe5b6020908102919091010152506001016104db565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461062a5760405162461bcd60e51b81526004016102f2906112c2565b600061063c6080830160608401610fb8565b600181111561064757fe5b14156106655760405162461bcd60e51b81526004016102f29061128b565b6000600160006106786020850185610e89565b6001600160a01b03168152602081019190915260400160002054600160a81b900460ff1660018111156106a757fe5b14156106ef5760026106bc6020830183610e89565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b61070661070136839003830183610fea565b610a92565b50565b6001600160a01b038082166000908152600160205260409020546101009004165b919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107775760405162461bcd60e51b81526004016102f2906112c2565b6001600160a01b039091166000908152600160205260409020805463ffffffff909216600160c81b0263ffffffff60c81b19909216919091179055565b600281815481106107c157fe5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108235760405162461bcd60e51b81526004016102f2906112c2565b60006002828154811061083257fe5b60009182526020808320909101546001600160a01b03908116808452600190925260409092205490925060ff8116916101009091041681156109705760008054604051636eb1769f60e11b81526001600160a01b038085169263dd62ed3e926108aa926201000090920490911690889060040161107d565b60206040518083038186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa919061101d565b9050801561096e5760008054604051633ef1078360e01b8152620100009091046001600160a01b031691633ef107839161093b9186918991906004016111db565b600060405180830381600087803b15801561095557600080fd5b505af1158015610969573d6000803e3d6000fd5b505050505b505b6001600160a01b038316600090815260016020526040902080546001600160e81b03191690556002805460001981019081106109a857fe5b600091825260209091200154600280546001600160a01b0390921691869081106109ce57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506002805480610a0757fe5b6001900381819060005260206000200160006101000a8154906001600160a01b0302191690559055826001600160a01b03167f02826f62d88a4d9f1978eb9c06f8663f642d032908e65a915d5898f3585421c06000604051610a6991906111ff565b60405180910390a250505050565b6000546201000090046001600160a01b031681565b303b1590565b60208181015182516001600160a01b0390811660009081526001808552604091829020845181549686015160ff1990971690151517610100600160a81b0319166101009690941695909502929092178085559083015192939291839160ff60a81b191690600160a81b908490811115610b0757fe5b02179055506060820151815460809093015163ffffffff16600160c81b0263ffffffff60c81b1962ffffff909216600160b01b0262ffffff60b01b19909416939093171691909117905560208101515115610d1457600081600001516001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9b57600080fd5b505afa158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190610eac565b90508160200151602001516001600160a01b0316816001600160a01b031614610c0e5760405162461bcd60e51b81526004016102f290611262565b600080548351604051636eb1769f60e11b81526001600160a01b038086169363dd62ed3e93610c4b9362010000909204909216919060040161107d565b60206040518083038186803b158015610c6357600080fd5b505afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061101d565b905080610d11576000548351604051633ef1078360e01b8152620100009092046001600160a01b031691633ef1078391610cde91869190600019906004016111db565b600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b505050505b50505b80600001516001600160a01b03167f02826f62d88a4d9f1978eb9c06f8663f642d032908e65a915d5898f3585421c0826020015160400151604051610d5991906111ff565b60405180910390a250565b604051806040016040528060006001600160a01b03168152602001610d87610d8c565b905290565b6040805160a0810182526000808252602082018190529091820190815260006020820181905260409091015290565b8035610dc681611348565b92915050565b803560028110610dc657600080fd5b600081830360c0811215610ded578182fd5b610df760406112ea565b91508235610e0481611348565b825260a0601f1982011215610e1857600080fd5b50610e2360a06112ea565b6020830135610e318161135d565b81526040830135610e4181611348565b6020820152610e538460608501610dcc565b60408201526080830135610e668161136b565b606082015260a0830135610e798161137c565b6080820152602082015292915050565b600060208284031215610e9a578081fd5b8135610ea581611348565b9392505050565b600060208284031215610ebd578081fd5b8151610ea581611348565b60008060408385031215610eda578081fd5b823567ffffffffffffffff811115610ef0578182fd5b8301601f81018513610f00578182fd5b8035610f13610f0e82611311565b6112ea565b808282526020808301925080850160c08a838288028901011115610f35578788fd5b8796505b85871015610f6157610f4b8b83610ddb565b8552600196909601959382019390810190610f39565b5050819650610f7289828a01610dbb565b955050505050509250929050565b60008060408385031215610f92578182fd5b8235610f9d81611348565b91506020830135610fad8161137c565b809150509250929050565b600060208284031215610fc9578081fd5b610ea58383610dcc565b600060c08284031215610fe4578081fd5b50919050565b600060c08284031215610ffb578081fd5b610ea58383610ddb565b600060208284031215611016578081fd5b5035919050565b60006020828403121561102e578081fd5b5051919050565b15159052565b6001600160a01b03169052565b6002811061105257fe5b9052565b62ffffff169052565b63ffffffff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156110d85783516001600160a01b0316835292840192918401916001016110b3565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156111875781516111158151611331565b855286015180516111299088870190611035565b868101516111398787018261103b565b5085810151606061114c81880183611048565b8201519050608061115f87820183611056565b9190910151905061117360a086018261105f565b5060c0939093019290850190600101611101565b5091979650505050505050565b85151581526001600160a01b038516602082015260a081016111b58561133d565b604083015262ffffff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020810161120c8361133d565b825292915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600f908201526e24b731b7b93932b1ba103a37b5b2b760891b604082015260600190565b6020808252601f908201527f5573652072656d6f7665496e7374616e6365282920666f722072656d6f766500604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60405181810167ffffffffffffffff8111828210171561130957600080fd5b604052919050565b600067ffffffffffffffff821115611327578081fd5b5060209081020190565b6001600160a01b031690565b806002811061072a57fe5b6001600160a01b038116811461070657600080fd5b801515811461070657600080fd5b62ffffff8116811461070657600080fd5b63ffffffff8116811461070657600080fdfea26469706673582212207c46c875176b62100d16a46c273e615cd9eb5336dbcd238b33b227f39ff9106564736f6c634300060c0033"; -const isSuperArgs$F = (xs) => xs.length > 1; +const _bytecode$G = "0x60a060405234801561001057600080fd5b5060405161146738038061146783398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6113c46100a3600039806103e552806105c052806105ed528061073a52806107e652506113c46000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80636c9be937116100715780636c9be9371461014d578063908e3b371461016057806392b65a4114610173578063b5b899b714610186578063cf552c8914610199578063f887ea40146101ac576100b4565b8063032bb443146100b957806310c13ac3146100e65780631ad058a9146100fb5780634ba16d9d1461011057806352c228e3146101235780635aa6e67514610138575b600080fd5b6100cc6100c7366004610e89565b6101b4565b6040516100dd959493929190611194565b60405180910390f35b6100ee6101fe565b6040516100dd9190611097565b61010e610109366004610ec8565b6102af565b005b61010e61011e366004610e89565b6103da565b61012b61047f565b6040516100dd91906110e4565b6101406105be565b6040516100dd9190611069565b61010e61015b366004610fd3565b6105e2565b61014061016e366004610e89565b610709565b61010e610181366004610f80565b61072f565b610140610194366004611005565b6107b4565b61010e6101a7366004611005565b6107db565b610140610a77565b60016020526000908152604090205460ff8082169161010081046001600160a01b031691600160a81b82041690600160b01b810462ffffff1690600160c81b900463ffffffff1685565b60025460609067ffffffffffffffff8111801561021a57600080fd5b50604051908082528060200260200182016040528015610244578160200160208202803683370190505b50905060005b6002548110156102ab576002818154811061026157fe5b9060005260206000200160009054906101000a90046001600160a01b031682828151811061028b57fe5b6001600160a01b039092166020928302919091019091015260010161024a565b5090565b600054610100900460ff16806102c857506102c8610a8c565b806102d6575060005460ff16155b6102fb5760405162461bcd60e51b81526004016102f290611214565b60405180910390fd5b600054610100900460ff16158015610326576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021781555b83518110156103c25761036e84828151811061036157fe5b6020026020010151610a92565b600284828151811061037c57fe5b6020908102919091018101515182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610349565b5080156103d5576000805461ff00191690555b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104225760405162461bcd60e51b81526004016102f2906112c2565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a890610474908390611069565b60405180910390a150565b60025460609067ffffffffffffffff8111801561049b57600080fd5b506040519080825280602002602001820160405280156104d557816020015b6104c2610d64565b8152602001906001900390816104ba5790505b50905060005b6002548110156102ab576000600282815481106104f457fe5b60009182526020808320909101546040805180820182526001600160a01b03928316808252808652600180865295839020835160a081018552815460ff8082161515835261010082049097168289015292985092969587019592949093850192600160a81b909204169081111561056757fe5b600181111561057257fe5b81529054600160b01b810462ffffff166020830152600160c81b900463ffffffff16604090910152905283518490849081106105aa57fe5b6020908102919091010152506001016104db565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461062a5760405162461bcd60e51b81526004016102f2906112c2565b600061063c6080830160608401610fb8565b600181111561064757fe5b14156106655760405162461bcd60e51b81526004016102f29061128b565b6000600160006106786020850185610e89565b6001600160a01b03168152602081019190915260400160002054600160a81b900460ff1660018111156106a757fe5b14156106ef5760026106bc6020830183610e89565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b61070661070136839003830183610fea565b610a92565b50565b6001600160a01b038082166000908152600160205260409020546101009004165b919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107775760405162461bcd60e51b81526004016102f2906112c2565b6001600160a01b039091166000908152600160205260409020805463ffffffff909216600160c81b0263ffffffff60c81b19909216919091179055565b600281815481106107c157fe5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108235760405162461bcd60e51b81526004016102f2906112c2565b60006002828154811061083257fe5b60009182526020808320909101546001600160a01b03908116808452600190925260409092205490925060ff8116916101009091041681156109705760008054604051636eb1769f60e11b81526001600160a01b038085169263dd62ed3e926108aa926201000090920490911690889060040161107d565b60206040518083038186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa919061101d565b9050801561096e5760008054604051633ef1078360e01b8152620100009091046001600160a01b031691633ef107839161093b9186918991906004016111db565b600060405180830381600087803b15801561095557600080fd5b505af1158015610969573d6000803e3d6000fd5b505050505b505b6001600160a01b038316600090815260016020526040902080546001600160e81b03191690556002805460001981019081106109a857fe5b600091825260209091200154600280546001600160a01b0390921691869081106109ce57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506002805480610a0757fe5b6001900381819060005260206000200160006101000a8154906001600160a01b0302191690559055826001600160a01b03167f02826f62d88a4d9f1978eb9c06f8663f642d032908e65a915d5898f3585421c06000604051610a6991906111ff565b60405180910390a250505050565b6000546201000090046001600160a01b031681565b303b1590565b60208181015182516001600160a01b0390811660009081526001808552604091829020845181549686015160ff1990971690151517610100600160a81b0319166101009690941695909502929092178085559083015192939291839160ff60a81b191690600160a81b908490811115610b0757fe5b02179055506060820151815460809093015163ffffffff16600160c81b0263ffffffff60c81b1962ffffff909216600160b01b0262ffffff60b01b19909416939093171691909117905560208101515115610d1457600081600001516001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9b57600080fd5b505afa158015610baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd39190610eac565b90508160200151602001516001600160a01b0316816001600160a01b031614610c0e5760405162461bcd60e51b81526004016102f290611262565b600080548351604051636eb1769f60e11b81526001600160a01b038086169363dd62ed3e93610c4b9362010000909204909216919060040161107d565b60206040518083038186803b158015610c6357600080fd5b505afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061101d565b905080610d11576000548351604051633ef1078360e01b8152620100009092046001600160a01b031691633ef1078391610cde91869190600019906004016111db565b600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b505050505b50505b80600001516001600160a01b03167f02826f62d88a4d9f1978eb9c06f8663f642d032908e65a915d5898f3585421c0826020015160400151604051610d5991906111ff565b60405180910390a250565b604051806040016040528060006001600160a01b03168152602001610d87610d8c565b905290565b6040805160a0810182526000808252602082018190529091820190815260006020820181905260409091015290565b8035610dc681611348565b92915050565b803560028110610dc657600080fd5b600081830360c0811215610ded578182fd5b610df760406112ea565b91508235610e0481611348565b825260a0601f1982011215610e1857600080fd5b50610e2360a06112ea565b6020830135610e318161135d565b81526040830135610e4181611348565b6020820152610e538460608501610dcc565b60408201526080830135610e668161136b565b606082015260a0830135610e798161137c565b6080820152602082015292915050565b600060208284031215610e9a578081fd5b8135610ea581611348565b9392505050565b600060208284031215610ebd578081fd5b8151610ea581611348565b60008060408385031215610eda578081fd5b823567ffffffffffffffff811115610ef0578182fd5b8301601f81018513610f00578182fd5b8035610f13610f0e82611311565b6112ea565b808282526020808301925080850160c08a838288028901011115610f35578788fd5b8796505b85871015610f6157610f4b8b83610ddb565b8552600196909601959382019390810190610f39565b5050819650610f7289828a01610dbb565b955050505050509250929050565b60008060408385031215610f92578182fd5b8235610f9d81611348565b91506020830135610fad8161137c565b809150509250929050565b600060208284031215610fc9578081fd5b610ea58383610dcc565b600060c08284031215610fe4578081fd5b50919050565b600060c08284031215610ffb578081fd5b610ea58383610ddb565b600060208284031215611016578081fd5b5035919050565b60006020828403121561102e578081fd5b5051919050565b15159052565b6001600160a01b03169052565b6002811061105257fe5b9052565b62ffffff169052565b63ffffffff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156110d85783516001600160a01b0316835292840192918401916001016110b3565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156111875781516111158151611331565b855286015180516111299088870190611035565b868101516111398787018261103b565b5085810151606061114c81880183611048565b8201519050608061115f87820183611056565b9190910151905061117360a086018261105f565b5060c0939093019290850190600101611101565b5091979650505050505050565b85151581526001600160a01b038516602082015260a081016111b58561133d565b604083015262ffffff8416606083015263ffffffff831660808301529695505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020810161120c8361133d565b825292915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600f908201526e24b731b7b93932b1ba103a37b5b2b760891b604082015260600190565b6020808252601f908201527f5573652072656d6f7665496e7374616e6365282920666f722072656d6f766500604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60405181810167ffffffffffffffff8111828210171561130957600080fd5b604052919050565b600067ffffffffffffffff821115611327578081fd5b5060209081020190565b6001600160a01b031690565b806002811061072a57fe5b6001600160a01b038116811461070657600080fd5b801515811461070657600080fd5b62ffffff8116811461070657600080fd5b63ffffffff8116811461070657600080fdfea26469706673582212207c46c875176b62100d16a46c273e615cd9eb5336dbcd238b33b227f39ff9106564736f6c634300060c0033"; +const isSuperArgs$G = (xs) => xs.length > 1; class InstanceRegistry__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$F(args)) { + if (isSuperArgs$G(args)) { super(...args); } else { - super(_abi$13, _bytecode$F, args[0]); + super(_abi$16, _bytecode$G, args[0]); } } getDeployTransaction(_governance, overrides) { @@ -107491,23 +109448,23 @@ class InstanceRegistry__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$F; - static abi = _abi$13; + static bytecode = _bytecode$G; + static abi = _abi$16; static createInterface() { - return new Interface(_abi$13); + return new Interface(_abi$16); } static connect(address, runner) { - return new contract_Contract(address, _abi$13, runner); + return new contract_Contract(address, _abi$16, runner); } } -var index$w = /*#__PURE__*/Object.freeze({ +var index$x = /*#__PURE__*/Object.freeze({ __proto__: null, ITornadoRouter__factory: ITornadoRouter__factory, InstanceRegistry__factory: InstanceRegistry__factory }); -const _abi$12 = [ +const _abi$15 = [ { inputs: [ { @@ -107529,16 +109486,16 @@ const _abi$12 = [ } ]; class IENS__factory { - static abi = _abi$12; + static abi = _abi$15; static createInterface() { - return new Interface(_abi$12); + return new Interface(_abi$15); } static connect(address, runner) { - return new contract_Contract(address, _abi$12, runner); + return new contract_Contract(address, _abi$15, runner); } } -const _abi$11 = [ +const _abi$14 = [ { inputs: [ { @@ -107560,16 +109517,16 @@ const _abi$11 = [ } ]; class IFeeManager__factory { - static abi = _abi$11; + static abi = _abi$14; static createInterface() { - return new Interface(_abi$11); + return new Interface(_abi$14); } static connect(address, runner) { - return new contract_Contract(address, _abi$11, runner); + return new contract_Contract(address, _abi$14, runner); } } -const _abi$10 = [ +const _abi$13 = [ { inputs: [ { @@ -108227,14 +110184,14 @@ const _abi$10 = [ type: "function" } ]; -const _bytecode$E = "0x6101206040523480156200001257600080fd5b5060405162001fab38038062001fab83398101604081905262000035916200006d565b6001600160601b0319606095861b811660805293851b841660a05291841b831660c052831b821660e05290911b166101005262000105565b600080600080600060a0868803121562000085578081fd5b85516200009281620000ec565b6020870151909550620000a581620000ec565b6040870151909450620000b881620000ec565b6060870151909350620000cb81620000ec565b6080870151909250620000de81620000ec565b809150509295509295909350565b6001600160a01b03811681146200010257600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c611e1662000195600039806106785280610bf352508061075452806108af5280610ea852806111685250806105625280610f99525080610351528061080952806108dc52806109e75280610ce4525080610a205280610aa95280610c375280610e8552806111455250611e166000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635aa6e675116100de578063c4d66de811610097578063e37e8bcc11610071578063e37e8bcc14610305578063e43fdb3c14610318578063eb4af0451461032b578063f18876841461033e57610173565b8063c4d66de8146102d7578063d0fb0203146102ea578063d990231d146102f257610173565b80635aa6e6751461026e57806385a2968314610276578063adf898a414610289578063ae53941c14610291578063b69fd4ab146102b1578063b971a6bf146102c457610173565b80634ba16d9d116101305780634ba16d9d146101f75780634cb16c2e1461020a5780634cf088d9146102125780634d4efd041461021a5780635300f8411461022d578063541d55481461024e57610173565b806314d92307146101785780632e6506491461018d5780633523dc85146101a05780633f15457f146101b35780634048a257146101d157806345a11cec146101e4575b600080fd5b61018b610186366004611612565b610346565b005b61018b61019b36600461164a565b610414565b61018b6101ae366004611612565b610460565b6101bb610560565b6040516101c891906118f5565b60405180910390f35b6101bb6101df366004611612565b610584565b61018b6101f2366004611682565b61059f565b61018b610205366004611612565b6107fe565b6101bb610898565b6101bb6108ad565b61018b610228366004611612565b6108d1565b61024061023b366004611612565b6109ac565b6040516101c89291906118cb565b61026161025c366004611612565b6109c5565b6040516101c891906119a1565b6101bb6109e5565b61018b6102843660046116f7565b610a09565b6101bb610aa7565b6102a461029f366004611612565b610acb565b6040516101c891906119ac565b6102616102bf36600461164a565b610af9565b6102a46102d2366004611612565b610b20565b61018b6102e5366004611612565b610b4b565b6101bb610bf1565b61018b6103003660046116cc565b610c15565b61018b6103133660046117fc565b610c20565b61018b610326366004611785565b610cc4565b61018b6103393660046118b3565b610cd9565b6102a4610d56565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103975760405162461bcd60e51b815260040161038e90611ae4565b60405180910390fd5b6103a0816108d1565b6001600160a01b038116600090815260026020908152604080832083815560010183905560039091529081902080546001600160a01b0319169055517f490a66cc56c789979052c7052fc0c10a6c4627d8e6165caec80db97a4c383521906104099083906118f5565b60405180910390a150565b3360008181526003602052604090205483906001600160a01b038083169116146104505760405162461bcd60e51b815260040161038e90611c83565b61045a8484610d5c565b50505050565b6001600160a01b03811633146104a9576001600160a01b038181166000908152600360205260409020541633146104a95760405162461bcd60e51b815260040161038e90611cd8565b6001600160a01b0380821660008181526003602052604090205490911614156104e45760405162461bcd60e51b815260040161038e90611b8b565b6001600160a01b03808216600090815260036020526040908190205490517fb2a8e18b9e887f502d65c1683e60b723fa582a6903ea4e8eb23907a19c1ce8a0926105319216908490611909565b60405180910390a16001600160a01b0316600090815260036020526040902080546001600160a01b0319169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052600090815260409020546001600160a01b031681565b6000546201000090046001600160a01b031633146105cf5760405162461bcd60e51b815260040161038e90611a64565b6001600160a01b03808416600090815260036020526040902054168061062d576001600160a01b0383811660009081526003602052604090205416156106275760405162461bcd60e51b815260040161038e90611be8565b506107f9565b826001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260040161038e90611c83565b604051630bbefce160e21b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632efbf384906106ad9086906004016118f5565b602060405180830381600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff919061162e565b6001600160a01b03858116600090815260026020526040902054911691506107279082610df5565b6001600160a01b038086166000908152600260205260409081902092909255905163338610af60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063338610af9061078b9084906004016119ac565b600060405180830381600087803b1580156107a557600080fd5b505af11580156107b9573d6000803e3d6000fd5b505050507f659f33fc6677bebf3a9bf3101092792e31f35766d0358e54577bdd91a655f6a084826040516107ee929190611988565b60405180910390a150505b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108465760405162461bcd60e51b815260040161038e90611ae4565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a8906104099083906118f5565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260040161038e90611ae4565b6001600160a01b038082166000818152600360205260409020549091169081146109555760405162461bcd60e51b815260040161038e90611d74565b6001600160a01b03811660009081526002602052604080822091909155517fafa759fb3c68e89eaaba359f0930ab40c24875b73cc9e2f6a38b0180019eb8f3906109a09084906118f5565b60405180910390a15050565b6002602052600090815260409020805460019091015482565b6001600160a01b0390811660009081526003602052604090205416151590565b7f000000000000000000000000000000000000000000000000000000000000000081565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610a6190889030908b908a908a908a908a90600401611947565b600060405180830381600087803b158015610a7b57600080fd5b505af1158015610a8f573d6000803e3d6000fd5b50505050610a9e858888610e3e565b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03908116600090815260036020908152604080832054909316825260029052206001015490565b6001600160a01b038181166000908152600360205260409020548116908316145b92915050565b6001600160a01b03908116600090815260036020908152604080832054909316825260029052205490565b600054610100900460ff1680610b645750610b64610f4c565b80610b72575060005460ff16155b610b8e5760405162461bcd60e51b815260040161038e90611b3d565b600054610100900460ff16158015610bb9576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015610bed576000805461ff00191690555b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bed338383610e3e565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610c7890889030908d908a908a908a908a90600401611947565b600060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b50505050610cb8858b8b8b8b8b610f52565b50505050505050505050565b610cd2338686868686610f52565b5050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d215760405162461bcd60e51b815260040161038e90611ae4565b60018190556040517f404663163d528ec45288abc4389b81bd96fabf858ff57577ebd4ee7f15d7b0a6906104099083906119ac565b60015481565b6001600160a01b038181166000908152600360205260409020541615610d945760405162461bcd60e51b815260040161038e90611b0d565b6001600160a01b038181166000908152600360205260409081902080546001600160a01b03191692851692909217909155517fcde75bd02c5f739608c891bcd9aa6809e6c4a7035ac7b9f3fd5fea756db74724906109a09084908490611909565b6000610e3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611287565b9392505050565b6001600160a01b0380831660008181526003602052604090205490911614610e785760405162461bcd60e51b815260040161038e90611abf565b610ecd6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016847f0000000000000000000000000000000000000000000000000000000000000000846112b3565b6001600160a01b038216600090815260026020526040902054610ef190829061130b565b6001600160a01b0383166000908152600260205260409081902091909155517f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d6490610f3f9084908490611988565b60405180910390a1505050565b303b1590565b6000610f9386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133092505050565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be3836040518263ffffffff1660e01b8152600401610fe391906119ac565b60206040518083038186803b158015610ffb57600080fd5b505afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611033919061162e565b905073d4416b13d2b3a9abae7acd5d6c2bbdbe256864016001600160a01b0382168114156110735760405162461bcd60e51b815260040161038e90611c15565b816001600160a01b0316896001600160a01b0316146110a45760405162461bcd60e51b815260040161038e90611ca9565b6001600160a01b0389811660009081526003602052604090205416156110dc5760405162461bcd60e51b815260040161038e90611bbb565b6001600160a01b03891660009081526002602052604090206001810154156111165760405162461bcd60e51b815260040161038e90611a38565b6001548710156111385760405162461bcd60e51b815260040161038e90611d50565b61118d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b7f00000000000000000000000000000000000000000000000000000000000000008a6112b3565b7f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d648a886040516111be929190611988565b60405180910390a1868155600181018490556001600160a01b038a16600081815260036020526040812080546001600160a01b0319169092179091555b8581101561123b57600087878381811061121157fe5b90506020020160208101906112269190611612565b90506112328c82610d5c565b506001016111fb565b507f9ca7c9c762eff27b021608f232b4c4b8f9b8bf9a3d322297e47cc4209a67d5e2848a8a8d8b6040516112739594939291906119b5565b60405180910390a150505050505050505050565b600081848411156112ab5760405162461bcd60e51b815260040161038e9190611a05565b505050900390565b61045a846323b872dd60e01b8585856040516024016112d493929190611923565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261133d565b600082820183811015610e375760405162461bcd60e51b815260040161038e90611a88565b6000610b1a8260006113cc565b6060611392826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114369092919063ffffffff16565b8051909150156107f957808060200190518101906113b09190611765565b6107f95760405162461bcd60e51b815260040161038e90611d06565b6000818351116113de57506000610b1a565b60006113ea848461144d565b90506113fb848285016001016113cc565b611406858584611492565b6040516020016114179291906118cb565b6040516020818303038152906040528051906020012091505092915050565b606061144584846000856114ae565b949350505050565b6000805b8351818401141580156114855750838184018151811061146d57fe5b6020910101516001600160f81b031916601760f91b14155b15610e3757600101611451565b6000835182840111156114a457600080fd5b5091016020012090565b60606114b985611572565b6114d55760405162461bcd60e51b815260040161038e90611c4c565b60006060866001600160a01b031685876040516114f291906118d9565b60006040518083038185875af1925050503d806000811461152f576040519150601f19603f3d011682016040523d82523d6000602084013e611534565b606091505b509150915081156115485791506114459050565b8051156115585780518082602001fd5b8360405162461bcd60e51b815260040161038e9190611a05565b3b151590565b60008083601f840112611589578182fd5b50813567ffffffffffffffff8111156115a0578182fd5b60208301915083602080830285010111156115ba57600080fd5b9250929050565b60008083601f8401126115d2578182fd5b50813567ffffffffffffffff8111156115e9578182fd5b6020830191508360208285010111156115ba57600080fd5b803560ff81168114610b1a57600080fd5b600060208284031215611623578081fd5b8135610e3781611dc8565b60006020828403121561163f578081fd5b8151610e3781611dc8565b6000806040838503121561165c578081fd5b823561166781611dc8565b9150602083013561167781611dc8565b809150509250929050565b600080600060608486031215611696578081fd5b83356116a181611dc8565b925060208401356116b181611dc8565b915060408401356116c181611dc8565b809150509250925092565b600080604083850312156116de578182fd5b82356116e981611dc8565b946020939093013593505050565b600080600080600080600060e0888a031215611711578283fd5b873561171c81611dc8565b965060208801359550604088013561173381611dc8565b9450606088013593506117498960808a01611601565b925060a0880135915060c0880135905092959891949750929550565b600060208284031215611776578081fd5b81518015158114610e37578182fd5b60008060008060006060868803121561179c578081fd5b853567ffffffffffffffff808211156117b3578283fd5b6117bf89838a016115c1565b90975095506020880135945060408801359150808211156117de578283fd5b506117eb88828901611578565b969995985093965092949392505050565b6000806000806000806000806000806101008b8d03121561181b578283fd5b8a3567ffffffffffffffff80821115611832578485fd5b61183e8e838f016115c1565b909c509a5060208d0135995060408d013591508082111561185d578485fd5b5061186a8d828e01611578565b90985096505060608b013561187e81611dc8565b945060808b013593506118948c60a08d01611601565b925060c08b0135915060e08b013590509295989b9194979a5092959850565b6000602082840312156118c4578081fd5b5035919050565b918252602082015260400190565b600082516118eb818460208701611d9c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600086825260806020830152846080830152848660a084013760a08583018101919091526001600160a01b039390931660408201526060810191909152601f909201601f19169091010192915050565b6000602082528251806020840152611a24816040850160208701611d9c565b601f01601f19169190910160400192915050565b6020808252601290820152717265676973746572656420616c726561647960701b604082015260600190565b6020808252600a90820152696f6e6c792070726f787960b01b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600b908201526a085c9959da5cdd195c995960aa1b604082015260600190565b6020808252600f908201526e6f6e6c7920676f7665726e616e636560881b604082015260600190565b60208082526016908201527563616e277420737465616c20616e206164647265737360501b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526016908201527531b0b73a103ab73932b3b4b9ba32b91036b0b9ba32b960511b604082015260600190565b60208082526013908201527231b0b73a103932b3b4b9ba32b91030b3b0b4b760691b604082015260600190565b60208082526013908201527227b7363c9031bab9ba37b6903932b630bcb2b960691b604082015260600190565b6020808252601a908201527f6f6e6c7920756e7772617070656420656e7320646f6d61696e73000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600c908201526b37b7363c903932b630bcb2b960a11b604082015260600190565b60208082526015908201527437b7363c9032b739903237b6b0b4b71037bbb732b960591b604082015260600190565b60208082526014908201527337b7363c9037bbb732b91037b3103bb7b935b2b960611b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600a9082015269216d696e5f7374616b6560b01b604082015260600190565b6020808252600e908201526d36bab9ba1031329036b0b9ba32b960911b604082015260600190565b60005b83811015611db7578181015183820152602001611d9f565b8381111561045a5750506000910152565b6001600160a01b0381168114611ddd57600080fd5b5056fea26469706673582212206f4cc4f67dba9ba55aab193d3511cc31e3b32c37cef7bd7df74b3ebff2b3ca5b64736f6c634300060c0033"; -const isSuperArgs$E = (xs) => xs.length > 1; +const _bytecode$F = "0x6101206040523480156200001257600080fd5b5060405162001fab38038062001fab83398101604081905262000035916200006d565b6001600160601b0319606095861b811660805293851b841660a05291841b831660c052831b821660e05290911b166101005262000105565b600080600080600060a0868803121562000085578081fd5b85516200009281620000ec565b6020870151909550620000a581620000ec565b6040870151909450620000b881620000ec565b6060870151909350620000cb81620000ec565b6080870151909250620000de81620000ec565b809150509295509295909350565b6001600160a01b03811681146200010257600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c611e1662000195600039806106785280610bf352508061075452806108af5280610ea852806111685250806105625280610f99525080610351528061080952806108dc52806109e75280610ce4525080610a205280610aa95280610c375280610e8552806111455250611e166000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635aa6e675116100de578063c4d66de811610097578063e37e8bcc11610071578063e37e8bcc14610305578063e43fdb3c14610318578063eb4af0451461032b578063f18876841461033e57610173565b8063c4d66de8146102d7578063d0fb0203146102ea578063d990231d146102f257610173565b80635aa6e6751461026e57806385a2968314610276578063adf898a414610289578063ae53941c14610291578063b69fd4ab146102b1578063b971a6bf146102c457610173565b80634ba16d9d116101305780634ba16d9d146101f75780634cb16c2e1461020a5780634cf088d9146102125780634d4efd041461021a5780635300f8411461022d578063541d55481461024e57610173565b806314d92307146101785780632e6506491461018d5780633523dc85146101a05780633f15457f146101b35780634048a257146101d157806345a11cec146101e4575b600080fd5b61018b610186366004611612565b610346565b005b61018b61019b36600461164a565b610414565b61018b6101ae366004611612565b610460565b6101bb610560565b6040516101c891906118f5565b60405180910390f35b6101bb6101df366004611612565b610584565b61018b6101f2366004611682565b61059f565b61018b610205366004611612565b6107fe565b6101bb610898565b6101bb6108ad565b61018b610228366004611612565b6108d1565b61024061023b366004611612565b6109ac565b6040516101c89291906118cb565b61026161025c366004611612565b6109c5565b6040516101c891906119a1565b6101bb6109e5565b61018b6102843660046116f7565b610a09565b6101bb610aa7565b6102a461029f366004611612565b610acb565b6040516101c891906119ac565b6102616102bf36600461164a565b610af9565b6102a46102d2366004611612565b610b20565b61018b6102e5366004611612565b610b4b565b6101bb610bf1565b61018b6103003660046116cc565b610c15565b61018b6103133660046117fc565b610c20565b61018b610326366004611785565b610cc4565b61018b6103393660046118b3565b610cd9565b6102a4610d56565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103975760405162461bcd60e51b815260040161038e90611ae4565b60405180910390fd5b6103a0816108d1565b6001600160a01b038116600090815260026020908152604080832083815560010183905560039091529081902080546001600160a01b0319169055517f490a66cc56c789979052c7052fc0c10a6c4627d8e6165caec80db97a4c383521906104099083906118f5565b60405180910390a150565b3360008181526003602052604090205483906001600160a01b038083169116146104505760405162461bcd60e51b815260040161038e90611c83565b61045a8484610d5c565b50505050565b6001600160a01b03811633146104a9576001600160a01b038181166000908152600360205260409020541633146104a95760405162461bcd60e51b815260040161038e90611cd8565b6001600160a01b0380821660008181526003602052604090205490911614156104e45760405162461bcd60e51b815260040161038e90611b8b565b6001600160a01b03808216600090815260036020526040908190205490517fb2a8e18b9e887f502d65c1683e60b723fa582a6903ea4e8eb23907a19c1ce8a0926105319216908490611909565b60405180910390a16001600160a01b0316600090815260036020526040902080546001600160a01b0319169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602052600090815260409020546001600160a01b031681565b6000546201000090046001600160a01b031633146105cf5760405162461bcd60e51b815260040161038e90611a64565b6001600160a01b03808416600090815260036020526040902054168061062d576001600160a01b0383811660009081526003602052604090205416156106275760405162461bcd60e51b815260040161038e90611be8565b506107f9565b826001600160a01b0316816001600160a01b03161461065e5760405162461bcd60e51b815260040161038e90611c83565b604051630bbefce160e21b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632efbf384906106ad9086906004016118f5565b602060405180830381600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff919061162e565b6001600160a01b03858116600090815260026020526040902054911691506107279082610df5565b6001600160a01b038086166000908152600260205260409081902092909255905163338610af60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063338610af9061078b9084906004016119ac565b600060405180830381600087803b1580156107a557600080fd5b505af11580156107b9573d6000803e3d6000fd5b505050507f659f33fc6677bebf3a9bf3101092792e31f35766d0358e54577bdd91a655f6a084826040516107ee929190611988565b60405180910390a150505b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108465760405162461bcd60e51b815260040161038e90611ae4565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a8906104099083906118f5565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260040161038e90611ae4565b6001600160a01b038082166000818152600360205260409020549091169081146109555760405162461bcd60e51b815260040161038e90611d74565b6001600160a01b03811660009081526002602052604080822091909155517fafa759fb3c68e89eaaba359f0930ab40c24875b73cc9e2f6a38b0180019eb8f3906109a09084906118f5565b60405180910390a15050565b6002602052600090815260409020805460019091015482565b6001600160a01b0390811660009081526003602052604090205416151590565b7f000000000000000000000000000000000000000000000000000000000000000081565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610a6190889030908b908a908a908a908a90600401611947565b600060405180830381600087803b158015610a7b57600080fd5b505af1158015610a8f573d6000803e3d6000fd5b50505050610a9e858888610e3e565b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03908116600090815260036020908152604080832054909316825260029052206001015490565b6001600160a01b038181166000908152600360205260409020548116908316145b92915050565b6001600160a01b03908116600090815260036020908152604080832054909316825260029052205490565b600054610100900460ff1680610b645750610b64610f4c565b80610b72575060005460ff16155b610b8e5760405162461bcd60e51b815260040161038e90611b3d565b600054610100900460ff16158015610bb9576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015610bed576000805461ff00191690555b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bed338383610e3e565b60405163d505accf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610c7890889030908d908a908a908a908a90600401611947565b600060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b50505050610cb8858b8b8b8b8b610f52565b50505050505050505050565b610cd2338686868686610f52565b5050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d215760405162461bcd60e51b815260040161038e90611ae4565b60018190556040517f404663163d528ec45288abc4389b81bd96fabf858ff57577ebd4ee7f15d7b0a6906104099083906119ac565b60015481565b6001600160a01b038181166000908152600360205260409020541615610d945760405162461bcd60e51b815260040161038e90611b0d565b6001600160a01b038181166000908152600360205260409081902080546001600160a01b03191692851692909217909155517fcde75bd02c5f739608c891bcd9aa6809e6c4a7035ac7b9f3fd5fea756db74724906109a09084908490611909565b6000610e3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611287565b9392505050565b6001600160a01b0380831660008181526003602052604090205490911614610e785760405162461bcd60e51b815260040161038e90611abf565b610ecd6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016847f0000000000000000000000000000000000000000000000000000000000000000846112b3565b6001600160a01b038216600090815260026020526040902054610ef190829061130b565b6001600160a01b0383166000908152600260205260409081902091909155517f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d6490610f3f9084908490611988565b60405180910390a1505050565b303b1590565b6000610f9386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133092505050565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166302571be3836040518263ffffffff1660e01b8152600401610fe391906119ac565b60206040518083038186803b158015610ffb57600080fd5b505afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611033919061162e565b905073d4416b13d2b3a9abae7acd5d6c2bbdbe256864016001600160a01b0382168114156110735760405162461bcd60e51b815260040161038e90611c15565b816001600160a01b0316896001600160a01b0316146110a45760405162461bcd60e51b815260040161038e90611ca9565b6001600160a01b0389811660009081526003602052604090205416156110dc5760405162461bcd60e51b815260040161038e90611bbb565b6001600160a01b03891660009081526002602052604090206001810154156111165760405162461bcd60e51b815260040161038e90611a38565b6001548710156111385760405162461bcd60e51b815260040161038e90611d50565b61118d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b7f00000000000000000000000000000000000000000000000000000000000000008a6112b3565b7f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d648a886040516111be929190611988565b60405180910390a1868155600181018490556001600160a01b038a16600081815260036020526040812080546001600160a01b0319169092179091555b8581101561123b57600087878381811061121157fe5b90506020020160208101906112269190611612565b90506112328c82610d5c565b506001016111fb565b507f9ca7c9c762eff27b021608f232b4c4b8f9b8bf9a3d322297e47cc4209a67d5e2848a8a8d8b6040516112739594939291906119b5565b60405180910390a150505050505050505050565b600081848411156112ab5760405162461bcd60e51b815260040161038e9190611a05565b505050900390565b61045a846323b872dd60e01b8585856040516024016112d493929190611923565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261133d565b600082820183811015610e375760405162461bcd60e51b815260040161038e90611a88565b6000610b1a8260006113cc565b6060611392826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114369092919063ffffffff16565b8051909150156107f957808060200190518101906113b09190611765565b6107f95760405162461bcd60e51b815260040161038e90611d06565b6000818351116113de57506000610b1a565b60006113ea848461144d565b90506113fb848285016001016113cc565b611406858584611492565b6040516020016114179291906118cb565b6040516020818303038152906040528051906020012091505092915050565b606061144584846000856114ae565b949350505050565b6000805b8351818401141580156114855750838184018151811061146d57fe5b6020910101516001600160f81b031916601760f91b14155b15610e3757600101611451565b6000835182840111156114a457600080fd5b5091016020012090565b60606114b985611572565b6114d55760405162461bcd60e51b815260040161038e90611c4c565b60006060866001600160a01b031685876040516114f291906118d9565b60006040518083038185875af1925050503d806000811461152f576040519150601f19603f3d011682016040523d82523d6000602084013e611534565b606091505b509150915081156115485791506114459050565b8051156115585780518082602001fd5b8360405162461bcd60e51b815260040161038e9190611a05565b3b151590565b60008083601f840112611589578182fd5b50813567ffffffffffffffff8111156115a0578182fd5b60208301915083602080830285010111156115ba57600080fd5b9250929050565b60008083601f8401126115d2578182fd5b50813567ffffffffffffffff8111156115e9578182fd5b6020830191508360208285010111156115ba57600080fd5b803560ff81168114610b1a57600080fd5b600060208284031215611623578081fd5b8135610e3781611dc8565b60006020828403121561163f578081fd5b8151610e3781611dc8565b6000806040838503121561165c578081fd5b823561166781611dc8565b9150602083013561167781611dc8565b809150509250929050565b600080600060608486031215611696578081fd5b83356116a181611dc8565b925060208401356116b181611dc8565b915060408401356116c181611dc8565b809150509250925092565b600080604083850312156116de578182fd5b82356116e981611dc8565b946020939093013593505050565b600080600080600080600060e0888a031215611711578283fd5b873561171c81611dc8565b965060208801359550604088013561173381611dc8565b9450606088013593506117498960808a01611601565b925060a0880135915060c0880135905092959891949750929550565b600060208284031215611776578081fd5b81518015158114610e37578182fd5b60008060008060006060868803121561179c578081fd5b853567ffffffffffffffff808211156117b3578283fd5b6117bf89838a016115c1565b90975095506020880135945060408801359150808211156117de578283fd5b506117eb88828901611578565b969995985093965092949392505050565b6000806000806000806000806000806101008b8d03121561181b578283fd5b8a3567ffffffffffffffff80821115611832578485fd5b61183e8e838f016115c1565b909c509a5060208d0135995060408d013591508082111561185d578485fd5b5061186a8d828e01611578565b90985096505060608b013561187e81611dc8565b945060808b013593506118948c60a08d01611601565b925060c08b0135915060e08b013590509295989b9194979a5092959850565b6000602082840312156118c4578081fd5b5035919050565b918252602082015260400190565b600082516118eb818460208701611d9c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b600086825260806020830152846080830152848660a084013760a08583018101919091526001600160a01b039390931660408201526060810191909152601f909201601f19169091010192915050565b6000602082528251806020840152611a24816040850160208701611d9c565b601f01601f19169190910160400192915050565b6020808252601290820152717265676973746572656420616c726561647960701b604082015260600190565b6020808252600a90820152696f6e6c792070726f787960b01b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600b908201526a085c9959da5cdd195c995960aa1b604082015260600190565b6020808252600f908201526e6f6e6c7920676f7665726e616e636560881b604082015260600190565b60208082526016908201527563616e277420737465616c20616e206164647265737360501b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526016908201527531b0b73a103ab73932b3b4b9ba32b91036b0b9ba32b960511b604082015260600190565b60208082526013908201527231b0b73a103932b3b4b9ba32b91030b3b0b4b760691b604082015260600190565b60208082526013908201527227b7363c9031bab9ba37b6903932b630bcb2b960691b604082015260600190565b6020808252601a908201527f6f6e6c7920756e7772617070656420656e7320646f6d61696e73000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600c908201526b37b7363c903932b630bcb2b960a11b604082015260600190565b60208082526015908201527437b7363c9032b739903237b6b0b4b71037bbb732b960591b604082015260600190565b60208082526014908201527337b7363c9037bbb732b91037b3103bb7b935b2b960611b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600a9082015269216d696e5f7374616b6560b01b604082015260600190565b6020808252600e908201526d36bab9ba1031329036b0b9ba32b960911b604082015260600190565b60005b83811015611db7578181015183820152602001611d9f565b8381111561045a5750506000910152565b6001600160a01b0381168114611ddd57600080fd5b5056fea26469706673582212206f4cc4f67dba9ba55aab193d3511cc31e3b32c37cef7bd7df74b3ebff2b3ca5b64736f6c634300060c0033"; +const isSuperArgs$F = (xs) => xs.length > 1; class RelayerRegistry__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$E(args)) { + if (isSuperArgs$F(args)) { super(...args); } else { - super(_abi$10, _bytecode$E, args[0]); + super(_abi$13, _bytecode$F, args[0]); } } getDeployTransaction(_torn, _governance, _ens, _staking, _feeManager, overrides) { @@ -108260,24 +110217,24 @@ class RelayerRegistry__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$E; - static abi = _abi$10; + static bytecode = _bytecode$F; + static abi = _abi$13; static createInterface() { - return new Interface(_abi$10); + return new Interface(_abi$13); } static connect(address, runner) { - return new contract_Contract(address, _abi$10, runner); + return new contract_Contract(address, _abi$13, runner); } } -var index$v = /*#__PURE__*/Object.freeze({ +var index$w = /*#__PURE__*/Object.freeze({ __proto__: null, IENS__factory: IENS__factory, IFeeManager__factory: IFeeManager__factory, RelayerRegistry__factory: RelayerRegistry__factory }); -const _abi$$ = [ +const _abi$12 = [ { inputs: [ { @@ -108299,16 +110256,16 @@ const _abi$$ = [ } ]; class ENS__factory { - static abi = _abi$$; + static abi = _abi$12; static createInterface() { - return new Interface(_abi$$); + return new Interface(_abi$12); } static connect(address, runner) { - return new contract_Contract(address, _abi$$, runner); + return new contract_Contract(address, _abi$12, runner); } } -const _abi$_ = [ +const _abi$11 = [ { inputs: [ { @@ -108348,14 +110305,14 @@ const _abi$_ = [ type: "function" } ]; -const _bytecode$D = "0x608060405234801561001057600080fd5b5061036d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635c23bdf51461003b578063f9e5423414610074575b600080fd5b6100586004803603602081101561005157600080fd5b5035610167565b604080516001600160a01b039092168252519081900360200190f35b6101176004803603602081101561008a57600080fd5b8101906020810181356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460208302840111640100000000831117156100d957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610292945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015357818101518382015260200161013b565b505050509050019250505060405180910390f35b600080610172610333565b60011461019357738595bfb0d940dfedc98943fa8a907091203f25ee6101a4565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b9050806001600160a01b0316630178b8bf846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156101ea57600080fd5b505afa1580156101fe573d6000803e3d6000fd5b505050506040513d602081101561021457600080fd5b505160408051631d9dabef60e11b81526004810186905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561025f57600080fd5b505afa158015610273573d6000803e3d6000fd5b505050506040513d602081101561028957600080fd5b50519392505050565b6060815167ffffffffffffffff811180156102ac57600080fd5b506040519080825280602002602001820160405280156102d6578160200160208202803683370190505b50905060005b825181101561032d576103018382815181106102f457fe5b6020026020010151610167565b82828151811061030d57fe5b6001600160a01b03909216602092830291909101909101526001016102dc565b50919050565b469056fea26469706673582212201849a5e31df8347ec61f3d54e8cef603101becea24443df7d4e43cc42ff12a7564736f6c634300060c0033"; -const isSuperArgs$D = (xs) => xs.length > 1; +const _bytecode$E = "0x608060405234801561001057600080fd5b5061036d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635c23bdf51461003b578063f9e5423414610074575b600080fd5b6100586004803603602081101561005157600080fd5b5035610167565b604080516001600160a01b039092168252519081900360200190f35b6101176004803603602081101561008a57600080fd5b8101906020810181356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460208302840111640100000000831117156100d957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610292945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015357818101518382015260200161013b565b505050509050019250505060405180910390f35b600080610172610333565b60011461019357738595bfb0d940dfedc98943fa8a907091203f25ee6101a4565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b9050806001600160a01b0316630178b8bf846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156101ea57600080fd5b505afa1580156101fe573d6000803e3d6000fd5b505050506040513d602081101561021457600080fd5b505160408051631d9dabef60e11b81526004810186905290516001600160a01b0390921691633b3b57de91602480820192602092909190829003018186803b15801561025f57600080fd5b505afa158015610273573d6000803e3d6000fd5b505050506040513d602081101561028957600080fd5b50519392505050565b6060815167ffffffffffffffff811180156102ac57600080fd5b506040519080825280602002602001820160405280156102d6578160200160208202803683370190505b50905060005b825181101561032d576103018382815181106102f457fe5b6020026020010151610167565b82828151811061030d57fe5b6001600160a01b03909216602092830291909101909101526001016102dc565b50919050565b469056fea26469706673582212201849a5e31df8347ec61f3d54e8cef603101becea24443df7d4e43cc42ff12a7564736f6c634300060c0033"; +const isSuperArgs$E = (xs) => xs.length > 1; class EnsResolve__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$D(args)) { + if (isSuperArgs$E(args)) { super(...args); } else { - super(_abi$_, _bytecode$D, args[0]); + super(_abi$11, _bytecode$E, args[0]); } } getDeployTransaction(overrides) { @@ -108367,17 +110324,17 @@ class EnsResolve__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$D; - static abi = _abi$_; + static bytecode = _bytecode$E; + static abi = _abi$11; static createInterface() { - return new Interface(_abi$_); + return new Interface(_abi$11); } static connect(address, runner) { - return new contract_Contract(address, _abi$_, runner); + return new contract_Contract(address, _abi$11, runner); } } -const _abi$Z = [ +const _abi$10 = [ { inputs: [ { @@ -108399,23 +110356,23 @@ const _abi$Z = [ } ]; class Resolver__factory { - static abi = _abi$Z; + static abi = _abi$10; static createInterface() { - return new Interface(_abi$Z); + return new Interface(_abi$10); } static connect(address, runner) { - return new contract_Contract(address, _abi$Z, runner); + return new contract_Contract(address, _abi$10, runner); } } -var index$u = /*#__PURE__*/Object.freeze({ +var index$v = /*#__PURE__*/Object.freeze({ __proto__: null, ENS__factory: ENS__factory, EnsResolve__factory: EnsResolve__factory, Resolver__factory: Resolver__factory }); -const _abi$Y = [ +const _abi$$ = [ { inputs: [ { @@ -108483,14 +110440,14 @@ const _abi$Y = [ type: "function" } ]; -const _bytecode$C = "0x608060405234801561001057600080fd5b5060405161039938038061039983398101604081905261002f91610220565b8181600061003c836101aa565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161006c91906102e4565b60206040518083038186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bc91906102cc565b116100e25760405162461bcd60e51b81526004016100d990610311565b60405180910390fd5b60005b82518110156101a557816001600160a01b031663a9059cbb84838151811061010957fe5b60200260200101516000015185848151811061012157fe5b6020026020010151602001516040518363ffffffff1660e01b815260040161014a9291906102f8565b602060405180830381600087803b15801561016457600080fd5b505af1158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906101f9565b506001016100e5565b506000ff5b60601c90565b6000604082840312156101c1578081fd5b6101cb6040610353565b82519091506001600160a01b03811681146101e557600080fd5b808252506020820151602082015292915050565b60006020828403121561020a578081fd5b81518015158114610219578182fd5b9392505050565b6000806040808486031215610233578182fd5b8351602080860151919450906001600160401b03811115610252578384fd5b8501601f81018713610262578384fd5b805161027561027082610379565b610353565b81815283810190838501868402850186018b1015610291578788fd5b8794505b838510156102bb576102a78b826101b0565b835260019490940193918501918601610295565b508096505050505050509250929050565b6000602082840312156102dd578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526022908201527f42616c616e636520697320302c2061697264726f7020616c726561647920646f6040820152616e6560f01b606082015260800190565b6040518181016001600160401b038111828210171561037157600080fd5b604052919050565b60006001600160401b0382111561038e578081fd5b506020908102019056fe"; -const isSuperArgs$C = (xs) => xs.length > 1; +const _bytecode$D = "0x608060405234801561001057600080fd5b5060405161039938038061039983398101604081905261002f91610220565b8181600061003c836101aa565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161006c91906102e4565b60206040518083038186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bc91906102cc565b116100e25760405162461bcd60e51b81526004016100d990610311565b60405180910390fd5b60005b82518110156101a557816001600160a01b031663a9059cbb84838151811061010957fe5b60200260200101516000015185848151811061012157fe5b6020026020010151602001516040518363ffffffff1660e01b815260040161014a9291906102f8565b602060405180830381600087803b15801561016457600080fd5b505af1158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906101f9565b506001016100e5565b506000ff5b60601c90565b6000604082840312156101c1578081fd5b6101cb6040610353565b82519091506001600160a01b03811681146101e557600080fd5b808252506020820151602082015292915050565b60006020828403121561020a578081fd5b81518015158114610219578182fd5b9392505050565b6000806040808486031215610233578182fd5b8351602080860151919450906001600160401b03811115610252578384fd5b8501601f81018713610262578384fd5b805161027561027082610379565b610353565b81815283810190838501868402850186018b1015610291578788fd5b8794505b838510156102bb576102a78b826101b0565b835260019490940193918501918601610295565b508096505050505050509250929050565b6000602082840312156102dd578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526022908201527f42616c616e636520697320302c2061697264726f7020616c726561647920646f6040820152616e6560f01b606082015260800190565b6040518181016001600160401b038111828210171561037157600080fd5b604052919050565b60006001600160401b0382111561038e578081fd5b506020908102019056fe"; +const isSuperArgs$D = (xs) => xs.length > 1; class AirdropMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$C(args)) { + if (isSuperArgs$D(args)) { super(...args); } else { - super(_abi$Y, _bytecode$C, args[0]); + super(_abi$$, _bytecode$D, args[0]); } } getDeployTransaction(tokenAddress, targets, overrides) { @@ -108502,17 +110459,17 @@ class AirdropMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$C; - static abi = _abi$Y; + static bytecode = _bytecode$D; + static abi = _abi$$; static createInterface() { - return new Interface(_abi$Y); + return new Interface(_abi$$); } static connect(address, runner) { - return new contract_Contract(address, _abi$Y, runner); + return new contract_Contract(address, _abi$$, runner); } } -const _abi$X = [ +const _abi$_ = [ { inputs: [ { @@ -108608,14 +110565,14 @@ const _abi$X = [ type: "function" } ]; -const _bytecode$B = "0x608060405234801561001057600080fd5b5061044b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630178b8bf1461005c5780633b3b57de146100855780637ef5029814610098578063ac9650d8146100ab578063d5fa2b00146100cb575b600080fd5b61006f61006a3660046102bc565b6100e0565b60405161007c919061031e565b60405180910390f35b61006f6100933660046102bc565b6100e5565b61006f6100a63660046102bc565b610100565b6100be6100b936600461024d565b61011b565b60405161007c9190610332565b6100de6100d93660046102d4565b61021f565b005b503090565b6000908152602081905260409020546001600160a01b031690565b6000602081905290815260409020546001600160a01b031681565b60608167ffffffffffffffff8111801561013457600080fd5b5060405190808252806020026020018201604052801561016857816020015b60608152602001906001900390816101535790505b50905060005b8281101561021857600060603086868581811061018757fe5b905060200281019061019991906103c9565b6040516101a792919061030e565b600060405180830381855af49150503d80600081146101e2576040519150601f19603f3d011682016040523d82523d6000602084013e6101e7565b606091505b5091509150816101f657600080fd5b8084848151811061020357fe5b6020908102919091010152505060010161016e565b5092915050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000806020838503121561025f578182fd5b823567ffffffffffffffff80821115610276578384fd5b818501915085601f830112610289578384fd5b813581811115610297578485fd5b86602080830285010111156102aa578485fd5b60209290920196919550909350505050565b6000602082840312156102cd578081fd5b5035919050565b600080604083850312156102e6578182fd5b8235915060208301356001600160a01b0381168114610303578182fd5b809150509250929050565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156103bc57878503603f1901845281518051808752885b8181101561038c578281018901518882018a01528801610371565b8181111561039c578989838a0101525b50601f01601f191695909501860194509285019290850190600101610357565b5092979650505050505050565b6000808335601e198436030181126103df578283fd5b83018035915067ffffffffffffffff8211156103f9578283fd5b60200191503681900382131561040e57600080fd5b925092905056fea26469706673582212202e44de42b72aec6265acc191876b290bc887c846ffca216ac5d28a16fd49092564736f6c634300060c0033"; -const isSuperArgs$B = (xs) => xs.length > 1; +const _bytecode$C = "0x608060405234801561001057600080fd5b5061044b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630178b8bf1461005c5780633b3b57de146100855780637ef5029814610098578063ac9650d8146100ab578063d5fa2b00146100cb575b600080fd5b61006f61006a3660046102bc565b6100e0565b60405161007c919061031e565b60405180910390f35b61006f6100933660046102bc565b6100e5565b61006f6100a63660046102bc565b610100565b6100be6100b936600461024d565b61011b565b60405161007c9190610332565b6100de6100d93660046102d4565b61021f565b005b503090565b6000908152602081905260409020546001600160a01b031690565b6000602081905290815260409020546001600160a01b031681565b60608167ffffffffffffffff8111801561013457600080fd5b5060405190808252806020026020018201604052801561016857816020015b60608152602001906001900390816101535790505b50905060005b8281101561021857600060603086868581811061018757fe5b905060200281019061019991906103c9565b6040516101a792919061030e565b600060405180830381855af49150503d80600081146101e2576040519150601f19603f3d011682016040523d82523d6000602084013e6101e7565b606091505b5091509150816101f657600080fd5b8084848151811061020357fe5b6020908102919091010152505060010161016e565b5092915050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000806020838503121561025f578182fd5b823567ffffffffffffffff80821115610276578384fd5b818501915085601f830112610289578384fd5b813581811115610297578485fd5b86602080830285010111156102aa578485fd5b60209290920196919550909350505050565b6000602082840312156102cd578081fd5b5035919050565b600080604083850312156102e6578182fd5b8235915060208301356001600160a01b0381168114610303578182fd5b809150509250929050565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156103bc57878503603f1901845281518051808752885b8181101561038c578281018901518882018a01528801610371565b8181111561039c578989838a0101525b50601f01601f191695909501860194509285019290850190600101610357565b5092979650505050505050565b6000808335601e198436030181126103df578283fd5b83018035915067ffffffffffffffff8211156103f9578283fd5b60200191503681900382131561040e57600080fd5b925092905056fea26469706673582212202e44de42b72aec6265acc191876b290bc887c846ffca216ac5d28a16fd49092564736f6c634300060c0033"; +const isSuperArgs$C = (xs) => xs.length > 1; class ENSMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$B(args)) { + if (isSuperArgs$C(args)) { super(...args); } else { - super(_abi$X, _bytecode$B, args[0]); + super(_abi$_, _bytecode$C, args[0]); } } getDeployTransaction(overrides) { @@ -108627,17 +110584,17 @@ class ENSMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$B; - static abi = _abi$X; + static bytecode = _bytecode$C; + static abi = _abi$_; static createInterface() { - return new Interface(_abi$X); + return new Interface(_abi$_); } static connect(address, runner) { - return new contract_Contract(address, _abi$X, runner); + return new contract_Contract(address, _abi$_, runner); } } -const _abi$W = [ +const _abi$Z = [ { inputs: [ { @@ -109285,14 +111242,14 @@ const _abi$W = [ type: "function" } ]; -const _bytecode$A = "0x60c06040523480156200001157600080fd5b506040516200298e3803806200298e8339810160408190526200003491620006d6565b604080518082018252600b81526a0a8dee4dcc2c8de86c2e6d60ab1b6020808301918252835180850190945260048452632a27a92760e11b90840152815186938693869390926200008891600391620005e4565b5080516200009e906004906020840190620005e4565b50506005805460ff1916601217905550620000b8620001f8565b506008805460ff199081169091556001600160601b0319606085901b1660a0526001600160a01b0384166000908152600960205260408120805490921660011790915583905b82518110156200017b5760008382815181106200011757fe5b60200260200101516000015190506200014f818584815181106200013757fe5b602002602001015160200151620002b460201b60201c565b6001600160a01b03166000908152600960205260409020805460ff1916600190811790915501620000fe565b506200019f836200018b62000397565b620003b360201b62000d721790919060201c565b608052620001ac620003e4565b620001b66200045b565b6a084595161401484a00000014620001eb5760405162461bcd60e51b8152600401620001e290620008a8565b60405180910390fd5b5050505050505062000946565b6000806200020562000461565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200023462000467565b805160209182012060408051808201825260018152603160f81b90840152516200028693927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918791309101620007be565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b6001600160a01b038216620002dd5760405162461bcd60e51b8152600401620001e290620008df565b620002eb6000838362000501565b6200030781600254620003b360201b62000d721790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200033a91839062000d72620003b3821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200038b90859062000916565b60405180910390a35050565b6000620003ae620005bc60201b62000d9e1760201c565b905090565b600082820183811015620003db5760405162461bcd60e51b8152600401620001e290620007ea565b90505b92915050565b60085460ff16156200040a5760405162461bcd60e51b8152600401620001e2906200087e565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862000442620005d7565b604051620004519190620007aa565b60405180910390a1565b60025490565b600b5490565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620004f75780601f10620004cb57610100808354040283529160200191620004f7565b820191906000526020600020905b815481529060010190602001808311620004d957829003601f168201915b5050505050905090565b62000519838383620005b760201b620007421760201c565b62000523620005db565b15806200054857506001600160a01b03831660009081526009602052604090205460ff165b806200056c57506001600160a01b03821660009081526009602052604090205460ff165b6200058b5760405162461bcd60e51b8152600401620001e29062000858565b6001600160a01b038216301415620005b75760405162461bcd60e51b8152600401620001e29062000821565b505050565b6000600a54600014620005d257600a54620003ae565b504290565b3390565b60085460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200062757805160ff191683800117855562000657565b8280016001018555821562000657579182015b82811115620006575782518255916020019190600101906200063a565b506200066592915062000669565b5090565b5b808211156200066557600081556001016200066a565b80516001600160a01b0381168114620003de57600080fd5b600060408284031215620006aa578081fd5b620006b660406200091f565b9050620006c4838362000680565b81526020820151602082015292915050565b600080600060608486031215620006eb578283fd5b620006f7858562000680565b9250602080850151925060408086015160018060401b03808211156200071b578485fd5b818801915088601f8301126200072f578485fd5b8151818111156200073e578586fd5b6200074d85868302016200091f565b8181528581019250838601858302850187018c10156200076b578788fd5b8794505b828510156200079957620007848c8262000698565b8452600194909401939286019285016200076f565b508096505050505050509250925092565b6001600160a01b0391909116815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601c908201527f544f524e3a20696e636f727265637420646973747269627574696f6e00000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200093e57600080fd5b604052919050565b60805160a05160601c612008620009866000398061056f52806106975280610764528061081d5280610a215250806107bc5280610d2052506120086000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637ecebe0011610104578063adb61832116100a2578063d505accf11610071578063d505accf1461038d578063dc0f0d12146103a0578063dd62ed3e146103a8578063ef0e2ff4146103bb576101cf565b8063adb6183214610357578063adc879e91461035f578063c565882714610367578063cea9d26f1461037a576101cf565b806395d89b41116100de57806395d89b41146103215780639a8a059214610329578063a457c2d714610331578063a9059cbb14610344576101cf565b80637ecebe00146102e857806381893c7c146102fb578063885ad0cf1461030e576101cf565b80633c8d76d1116101715780635c975abb1161014b5780635c975abb146102a75780635d4545a0146102af57806370a08231146102c257806379cc6790146102d5576101cf565b80633c8d76d11461026a57806342966c681461027f5780635aa6e67514610292576101cf565b806318160ddd116101ad57806318160ddd1461022757806323b872dd1461022f578063313ce567146102425780633950935114610257576101cf565b806301ec0fab146101d457806306fdde03146101f2578063095ea7b314610207575b600080fd5b6101dc6103ce565b6040516101e99190611e68565b60405180910390f35b6101fa6103d4565b6040516101e99190611943565b61021a610215366004611708565b61046b565b6040516101e991906118ba565b6101dc610489565b61021a61023d366004611653565b61048f565b61024a610516565b6040516101e99190611e71565b61021a610265366004611708565b61051f565b61027d610278366004611733565b61056d565b005b61027d61028d36600461181c565b610681565b61029a610695565b6040516101e9919061188d565b61021a6106b9565b61021a6102bd3660046115ff565b6106c2565b6101dc6102d03660046115ff565b6106d7565b61027d6102e3366004611708565b6106f2565b6101dc6102f63660046115ff565b610747565b61027d6103093660046117d0565b610762565b61027d61031c366004611733565b61081b565b6101fa610922565b6101dc610983565b61021a61033f366004611708565b610989565b61021a610352366004611708565b6109f1565b6101dc610a05565b6101dc610a14565b61027d61037536600461181c565b610a1a565b61027d610388366004611808565b610a1f565b61027d61039b366004611693565b610bdd565b6101dc610d1e565b6101dc6103b636600461161b565b610d42565b61027d6103c936600461181c565b610d6d565b600a5481565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104605780601f1061043557610100808354040283529160200191610460565b820191906000526020600020905b81548152906001019060200180831161044357829003601f168201915b505050505090505b90565b600061047f610478610db7565b8484610dbb565b5060015b92915050565b60025490565b600061049c848484610e6f565b61050c846104a8610db7565b61050785604051806060016040528060288152602001611f62602891396001600160a01b038a166000908152600160205260408120906104e6610db7565b6001600160a01b031681526020810191909152604001600020549190610f84565b610dbb565b5060019392505050565b60055460ff1690565b600061047f61052c610db7565b84610507856001600061053d610db7565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d72565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661059f610db7565b6001600160a01b0316146105ce5760405162461bcd60e51b81526004016105c590611de4565b60405180910390fd5b60005b815181101561067d576000600960008484815181106105ec57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f9ef90a89b00db1a1891a357dc96b2a273add9d883e378c350d22bad87a9d7d3082828151811061065857fe5b602002602001015160405161066d919061188d565b60405180910390a16001016105d1565b5050565b61069261068c610db7565b82610fb0565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085460ff1690565b60096020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b600061072482604051806060016040528060248152602001611f8a6024913961071d866103b6610db7565b9190610f84565b905061073883610732610db7565b83610dbb565b6107428383610fb0565b505050565b6001600160a01b031660009081526006602052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610794610db7565b6001600160a01b0316146107ba5760405162461bcd60e51b81526004016105c590611de4565b7f00000000000000000000000000000000000000000000000000000000000000006107e3610a05565b116108005760405162461bcd60e51b81526004016105c590611bd9565b80156108135761080e611092565b610692565b6106926110fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661084d610db7565b6001600160a01b0316146108735760405162461bcd60e51b81526004016105c590611de4565b60005b815181101561067d5760016009600084848151811061089157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc058282815181106108fd57fe5b6020026020010151604051610912919061188d565b60405180910390a1600101610876565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104605780601f1061043557610100808354040283529160200191610460565b600b5481565b600061047f610996610db7565b8461050785604051806060016040528060258152602001611fae60259139600160006109c0610db7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610f84565b600061047f6109fe610db7565b8484610e6f565b6000610a0f610d9e565b905090565b600b5490565b600a55565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a51610db7565b6001600160a01b031614610a775760405162461bcd60e51b81526004016105c590611de4565b6001600160a01b038216610a9d5760405162461bcd60e51b81526004016105c590611d58565b6001600160a01b038316610b06574760008215610ac357610abe8284611157565b610ac5565b815b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610afe573d6000803e3d6000fd5b505050610742565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610b3590309060040161188d565b60206040518083038186803b158015610b4d57600080fd5b505afa158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b859190611834565b905060008215610b9e57610b998284611157565b610ba0565b815b905060008111610bc25760405162461bcd60e51b81526004016105c590611e31565b610bd66001600160a01b038616858361116d565b5050505050565b83610be6610a05565b1115610c045760405162461bcd60e51b81526004016105c590611ace565b6001600160a01b0387166000908152600660209081526040808320549051610c57927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c91016118c5565b6040516020818303038152906040528051906020012090506000611901610c7c6111c3565b83604051602001610c8f93929190611868565b6040516020818303038152906040528051906020012090506000610cb582878787611202565b9050896001600160a01b0316816001600160a01b031614610ce85760405162461bcd60e51b81526004016105c590611c20565b6001600160a01b038a16600090815260066020526040902080546001019055610d128a8a8a610dbb565b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b55565b600082820183811015610d975760405162461bcd60e51b81526004016105c590611a60565b9392505050565b6000600a54600014610db257600a54610a0f565b504290565b3390565b6001600160a01b038316610de15760405162461bcd60e51b81526004016105c590611cdd565b6001600160a01b038216610e075760405162461bcd60e51b81526004016105c590611a1e565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e62908590611e68565b60405180910390a3505050565b6001600160a01b038316610e955760405162461bcd60e51b81526004016105c590611c98565b6001600160a01b038216610ebb5760405162461bcd60e51b81526004016105c5906119ad565b610ec68383836112fa565b610f0381604051806060016040528060268152602001611f3c602691396001600160a01b0386166000908152602081905260409020549190610f84565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f329082610d72565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e62908590611e68565b60008184841115610fa85760405162461bcd60e51b81526004016105c59190611943565b505050900390565b6001600160a01b038216610fd65760405162461bcd60e51b81526004016105c590611c57565b610fe2826000836112fa565b61101f81604051806060016040528060228152602001611f1a602291396001600160a01b0385166000908152602081905260409020549190610f84565b6001600160a01b0383166000908152602081905260409020556002546110459082611399565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611086908590611e68565b60405180910390a35050565b60085460ff166110b45760405162461bcd60e51b81526004016105c5906119f0565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6110e7610db7565b6040516110f4919061188d565b60405180910390a1565b60085460ff16156111215760405162461bcd60e51b81526004016105c590611b6d565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110e7610db7565b60008183106111665781610d97565b5090919050565b6107428363a9059cbb60e01b848460405160240161118c9291906118a1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526113db565b600080600760006111d2610a14565b8152602081019190915260400160002054905080156111f2579050610468565b6111fa61146a565b915050610468565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156112445760405162461bcd60e51b81526004016105c590611b2b565b8360ff16601b148061125957508360ff16601c145b6112755760405162461bcd60e51b81526004016105c590611b97565b60006001868686866040516000815260200160405260405161129a9493929190611925565b6020604051602081039080840390855afa1580156112bc573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112ef5760405162461bcd60e51b81526004016105c590611976565b90505b949350505050565b611305838383610742565b61130d6106b9565b158061133157506001600160a01b03831660009081526009602052604090205460ff165b8061135457506001600160a01b03821660009081526009602052604090205460ff165b6113705760405162461bcd60e51b81526004016105c590611b05565b6001600160a01b0382163014156107425760405162461bcd60e51b81526004016105c590611a97565b6000610d9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f84565b6060611430826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115209092919063ffffffff16565b805190915015610742578080602001905181019061144e91906117ec565b6107425760405162461bcd60e51b81526004016105c590611d9a565b600080611475610a14565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6114a26103d4565b805160209182012060408051808201825260018152603160f81b90840152516114f293927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69187913091016118f9565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b60606112f284846000856060611535856115ee565b6115515760405162461bcd60e51b81526004016105c590611d21565b60006060866001600160a01b0316858760405161156e919061184c565b60006040518083038185875af1925050503d80600081146115ab576040519150601f19603f3d011682016040523d82523d6000602084013e6115b0565b606091505b509150915081156115c45791506112f29050565b8051156115d45780518082602001fd5b8360405162461bcd60e51b81526004016105c59190611943565b3b151590565b803561048381611ef6565b600060208284031215611610578081fd5b8135610d9781611ef6565b6000806040838503121561162d578081fd5b823561163881611ef6565b9150602083013561164881611ef6565b809150509250929050565b600080600060608486031215611667578081fd5b833561167281611ef6565b9250602084013561168281611ef6565b929592945050506040919091013590565b600080600080600080600060e0888a0312156116ad578283fd5b87356116b881611ef6565b965060208801356116c881611ef6565b95506040880135945060608801359350608088013560ff811681146116eb578384fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561171a578182fd5b823561172581611ef6565b946020939093013593505050565b60006020808385031215611745578182fd5b823567ffffffffffffffff81111561175b578283fd5b8301601f8101851361176b578283fd5b803561177e61177982611ea6565b611e7f565b818152838101908385018584028501860189101561179a578687fd5b8694505b838510156117c4576117b089826115f4565b83526001949094019391850191850161179e565b50979650505050505050565b6000602082840312156117e1578081fd5b8135610d9781611f0b565b6000602082840312156117fd578081fd5b8151610d9781611f0b565b600080600060608486031215611667578283fd5b60006020828403121561182d578081fd5b5035919050565b600060208284031215611845578081fd5b5051919050565b6000825161185e818460208701611ec6565b9190910192915050565b60f09390931b6001600160f01b03191683526002830191909152602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082528251806020840152611962816040850160208701611ec6565b601f01601f19169190910160400192915050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526027908201527f544f524e3a2063616e6e6f74206368616e6765207472616e736665726162696c6040820152661a5d1e481e595d60ca1b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252602d908201527f544f524e3a206f6e6c7920676f7665726e616e63652063616e20706572666f7260408201526c36903a3434b99030b1ba34b7b760991b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611e9e57600080fd5b604052919050565b600067ffffffffffffffff821115611ebc578081fd5b5060209081020190565b60005b83811015611ee1578181015183820152602001611ec9565b83811115611ef0576000848401525b50505050565b6001600160a01b038116811461069257600080fd5b801515811461069257600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c25cb2cef98080abbebec9b5719a4f46d638fbe559a3ab7a9de64272855c3c1064736f6c634300060c0033"; -const isSuperArgs$A = (xs) => xs.length > 1; +const _bytecode$B = "0x60c06040523480156200001157600080fd5b506040516200298e3803806200298e8339810160408190526200003491620006d6565b604080518082018252600b81526a0a8dee4dcc2c8de86c2e6d60ab1b6020808301918252835180850190945260048452632a27a92760e11b90840152815186938693869390926200008891600391620005e4565b5080516200009e906004906020840190620005e4565b50506005805460ff1916601217905550620000b8620001f8565b506008805460ff199081169091556001600160601b0319606085901b1660a0526001600160a01b0384166000908152600960205260408120805490921660011790915583905b82518110156200017b5760008382815181106200011757fe5b60200260200101516000015190506200014f818584815181106200013757fe5b602002602001015160200151620002b460201b60201c565b6001600160a01b03166000908152600960205260409020805460ff1916600190811790915501620000fe565b506200019f836200018b62000397565b620003b360201b62000d721790919060201c565b608052620001ac620003e4565b620001b66200045b565b6a084595161401484a00000014620001eb5760405162461bcd60e51b8152600401620001e290620008a8565b60405180910390fd5b5050505050505062000946565b6000806200020562000461565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200023462000467565b805160209182012060408051808201825260018152603160f81b90840152516200028693927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918791309101620007be565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b6001600160a01b038216620002dd5760405162461bcd60e51b8152600401620001e290620008df565b620002eb6000838362000501565b6200030781600254620003b360201b62000d721790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200033a91839062000d72620003b3821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200038b90859062000916565b60405180910390a35050565b6000620003ae620005bc60201b62000d9e1760201c565b905090565b600082820183811015620003db5760405162461bcd60e51b8152600401620001e290620007ea565b90505b92915050565b60085460ff16156200040a5760405162461bcd60e51b8152600401620001e2906200087e565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25862000442620005d7565b604051620004519190620007aa565b60405180910390a1565b60025490565b600b5490565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620004f75780601f10620004cb57610100808354040283529160200191620004f7565b820191906000526020600020905b815481529060010190602001808311620004d957829003601f168201915b5050505050905090565b62000519838383620005b760201b620007421760201c565b62000523620005db565b15806200054857506001600160a01b03831660009081526009602052604090205460ff165b806200056c57506001600160a01b03821660009081526009602052604090205460ff165b6200058b5760405162461bcd60e51b8152600401620001e29062000858565b6001600160a01b038216301415620005b75760405162461bcd60e51b8152600401620001e29062000821565b505050565b6000600a54600014620005d257600a54620003ae565b504290565b3390565b60085460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200062757805160ff191683800117855562000657565b8280016001018555821562000657579182015b82811115620006575782518255916020019190600101906200063a565b506200066592915062000669565b5090565b5b808211156200066557600081556001016200066a565b80516001600160a01b0381168114620003de57600080fd5b600060408284031215620006aa578081fd5b620006b660406200091f565b9050620006c4838362000680565b81526020820151602082015292915050565b600080600060608486031215620006eb578283fd5b620006f7858562000680565b9250602080850151925060408086015160018060401b03808211156200071b578485fd5b818801915088601f8301126200072f578485fd5b8151818111156200073e578586fd5b6200074d85868302016200091f565b8181528581019250838601858302850187018c10156200076b578788fd5b8794505b828510156200079957620007848c8262000698565b8452600194909401939286019285016200076f565b508096505050505050509250925092565b6001600160a01b0391909116815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601c908201527f544f524e3a20696e636f727265637420646973747269627574696f6e00000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200093e57600080fd5b604052919050565b60805160a05160601c612008620009866000398061056f52806106975280610764528061081d5280610a215250806107bc5280610d2052506120086000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637ecebe0011610104578063adb61832116100a2578063d505accf11610071578063d505accf1461038d578063dc0f0d12146103a0578063dd62ed3e146103a8578063ef0e2ff4146103bb576101cf565b8063adb6183214610357578063adc879e91461035f578063c565882714610367578063cea9d26f1461037a576101cf565b806395d89b41116100de57806395d89b41146103215780639a8a059214610329578063a457c2d714610331578063a9059cbb14610344576101cf565b80637ecebe00146102e857806381893c7c146102fb578063885ad0cf1461030e576101cf565b80633c8d76d1116101715780635c975abb1161014b5780635c975abb146102a75780635d4545a0146102af57806370a08231146102c257806379cc6790146102d5576101cf565b80633c8d76d11461026a57806342966c681461027f5780635aa6e67514610292576101cf565b806318160ddd116101ad57806318160ddd1461022757806323b872dd1461022f578063313ce567146102425780633950935114610257576101cf565b806301ec0fab146101d457806306fdde03146101f2578063095ea7b314610207575b600080fd5b6101dc6103ce565b6040516101e99190611e68565b60405180910390f35b6101fa6103d4565b6040516101e99190611943565b61021a610215366004611708565b61046b565b6040516101e991906118ba565b6101dc610489565b61021a61023d366004611653565b61048f565b61024a610516565b6040516101e99190611e71565b61021a610265366004611708565b61051f565b61027d610278366004611733565b61056d565b005b61027d61028d36600461181c565b610681565b61029a610695565b6040516101e9919061188d565b61021a6106b9565b61021a6102bd3660046115ff565b6106c2565b6101dc6102d03660046115ff565b6106d7565b61027d6102e3366004611708565b6106f2565b6101dc6102f63660046115ff565b610747565b61027d6103093660046117d0565b610762565b61027d61031c366004611733565b61081b565b6101fa610922565b6101dc610983565b61021a61033f366004611708565b610989565b61021a610352366004611708565b6109f1565b6101dc610a05565b6101dc610a14565b61027d61037536600461181c565b610a1a565b61027d610388366004611808565b610a1f565b61027d61039b366004611693565b610bdd565b6101dc610d1e565b6101dc6103b636600461161b565b610d42565b61027d6103c936600461181c565b610d6d565b600a5481565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104605780601f1061043557610100808354040283529160200191610460565b820191906000526020600020905b81548152906001019060200180831161044357829003601f168201915b505050505090505b90565b600061047f610478610db7565b8484610dbb565b5060015b92915050565b60025490565b600061049c848484610e6f565b61050c846104a8610db7565b61050785604051806060016040528060288152602001611f62602891396001600160a01b038a166000908152600160205260408120906104e6610db7565b6001600160a01b031681526020810191909152604001600020549190610f84565b610dbb565b5060019392505050565b60055460ff1690565b600061047f61052c610db7565b84610507856001600061053d610db7565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d72565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661059f610db7565b6001600160a01b0316146105ce5760405162461bcd60e51b81526004016105c590611de4565b60405180910390fd5b60005b815181101561067d576000600960008484815181106105ec57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f9ef90a89b00db1a1891a357dc96b2a273add9d883e378c350d22bad87a9d7d3082828151811061065857fe5b602002602001015160405161066d919061188d565b60405180910390a16001016105d1565b5050565b61069261068c610db7565b82610fb0565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085460ff1690565b60096020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b600061072482604051806060016040528060248152602001611f8a6024913961071d866103b6610db7565b9190610f84565b905061073883610732610db7565b83610dbb565b6107428383610fb0565b505050565b6001600160a01b031660009081526006602052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610794610db7565b6001600160a01b0316146107ba5760405162461bcd60e51b81526004016105c590611de4565b7f00000000000000000000000000000000000000000000000000000000000000006107e3610a05565b116108005760405162461bcd60e51b81526004016105c590611bd9565b80156108135761080e611092565b610692565b6106926110fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661084d610db7565b6001600160a01b0316146108735760405162461bcd60e51b81526004016105c590611de4565b60005b815181101561067d5760016009600084848151811061089157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc058282815181106108fd57fe5b6020026020010151604051610912919061188d565b60405180910390a1600101610876565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104605780601f1061043557610100808354040283529160200191610460565b600b5481565b600061047f610996610db7565b8461050785604051806060016040528060258152602001611fae60259139600160006109c0610db7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610f84565b600061047f6109fe610db7565b8484610e6f565b6000610a0f610d9e565b905090565b600b5490565b600a55565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a51610db7565b6001600160a01b031614610a775760405162461bcd60e51b81526004016105c590611de4565b6001600160a01b038216610a9d5760405162461bcd60e51b81526004016105c590611d58565b6001600160a01b038316610b06574760008215610ac357610abe8284611157565b610ac5565b815b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610afe573d6000803e3d6000fd5b505050610742565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610b3590309060040161188d565b60206040518083038186803b158015610b4d57600080fd5b505afa158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b859190611834565b905060008215610b9e57610b998284611157565b610ba0565b815b905060008111610bc25760405162461bcd60e51b81526004016105c590611e31565b610bd66001600160a01b038616858361116d565b5050505050565b83610be6610a05565b1115610c045760405162461bcd60e51b81526004016105c590611ace565b6001600160a01b0387166000908152600660209081526040808320549051610c57927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c91016118c5565b6040516020818303038152906040528051906020012090506000611901610c7c6111c3565b83604051602001610c8f93929190611868565b6040516020818303038152906040528051906020012090506000610cb582878787611202565b9050896001600160a01b0316816001600160a01b031614610ce85760405162461bcd60e51b81526004016105c590611c20565b6001600160a01b038a16600090815260066020526040902080546001019055610d128a8a8a610dbb565b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b55565b600082820183811015610d975760405162461bcd60e51b81526004016105c590611a60565b9392505050565b6000600a54600014610db257600a54610a0f565b504290565b3390565b6001600160a01b038316610de15760405162461bcd60e51b81526004016105c590611cdd565b6001600160a01b038216610e075760405162461bcd60e51b81526004016105c590611a1e565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e62908590611e68565b60405180910390a3505050565b6001600160a01b038316610e955760405162461bcd60e51b81526004016105c590611c98565b6001600160a01b038216610ebb5760405162461bcd60e51b81526004016105c5906119ad565b610ec68383836112fa565b610f0381604051806060016040528060268152602001611f3c602691396001600160a01b0386166000908152602081905260409020549190610f84565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f329082610d72565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e62908590611e68565b60008184841115610fa85760405162461bcd60e51b81526004016105c59190611943565b505050900390565b6001600160a01b038216610fd65760405162461bcd60e51b81526004016105c590611c57565b610fe2826000836112fa565b61101f81604051806060016040528060228152602001611f1a602291396001600160a01b0385166000908152602081905260409020549190610f84565b6001600160a01b0383166000908152602081905260409020556002546110459082611399565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611086908590611e68565b60405180910390a35050565b60085460ff166110b45760405162461bcd60e51b81526004016105c5906119f0565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6110e7610db7565b6040516110f4919061188d565b60405180910390a1565b60085460ff16156111215760405162461bcd60e51b81526004016105c590611b6d565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110e7610db7565b60008183106111665781610d97565b5090919050565b6107428363a9059cbb60e01b848460405160240161118c9291906118a1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526113db565b600080600760006111d2610a14565b8152602081019190915260400160002054905080156111f2579050610468565b6111fa61146a565b915050610468565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156112445760405162461bcd60e51b81526004016105c590611b2b565b8360ff16601b148061125957508360ff16601c145b6112755760405162461bcd60e51b81526004016105c590611b97565b60006001868686866040516000815260200160405260405161129a9493929190611925565b6020604051602081039080840390855afa1580156112bc573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112ef5760405162461bcd60e51b81526004016105c590611976565b90505b949350505050565b611305838383610742565b61130d6106b9565b158061133157506001600160a01b03831660009081526009602052604090205460ff165b8061135457506001600160a01b03821660009081526009602052604090205460ff165b6113705760405162461bcd60e51b81526004016105c590611b05565b6001600160a01b0382163014156107425760405162461bcd60e51b81526004016105c590611a97565b6000610d9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f84565b6060611430826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115209092919063ffffffff16565b805190915015610742578080602001905181019061144e91906117ec565b6107425760405162461bcd60e51b81526004016105c590611d9a565b600080611475610a14565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6114a26103d4565b805160209182012060408051808201825260018152603160f81b90840152516114f293927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69187913091016118f9565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b60606112f284846000856060611535856115ee565b6115515760405162461bcd60e51b81526004016105c590611d21565b60006060866001600160a01b0316858760405161156e919061184c565b60006040518083038185875af1925050503d80600081146115ab576040519150601f19603f3d011682016040523d82523d6000602084013e6115b0565b606091505b509150915081156115c45791506112f29050565b8051156115d45780518082602001fd5b8360405162461bcd60e51b81526004016105c59190611943565b3b151590565b803561048381611ef6565b600060208284031215611610578081fd5b8135610d9781611ef6565b6000806040838503121561162d578081fd5b823561163881611ef6565b9150602083013561164881611ef6565b809150509250929050565b600080600060608486031215611667578081fd5b833561167281611ef6565b9250602084013561168281611ef6565b929592945050506040919091013590565b600080600080600080600060e0888a0312156116ad578283fd5b87356116b881611ef6565b965060208801356116c881611ef6565b95506040880135945060608801359350608088013560ff811681146116eb578384fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561171a578182fd5b823561172581611ef6565b946020939093013593505050565b60006020808385031215611745578182fd5b823567ffffffffffffffff81111561175b578283fd5b8301601f8101851361176b578283fd5b803561177e61177982611ea6565b611e7f565b818152838101908385018584028501860189101561179a578687fd5b8694505b838510156117c4576117b089826115f4565b83526001949094019391850191850161179e565b50979650505050505050565b6000602082840312156117e1578081fd5b8135610d9781611f0b565b6000602082840312156117fd578081fd5b8151610d9781611f0b565b600080600060608486031215611667578283fd5b60006020828403121561182d578081fd5b5035919050565b600060208284031215611845578081fd5b5051919050565b6000825161185e818460208701611ec6565b9190910192915050565b60f09390931b6001600160f01b03191683526002830191909152602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082528251806020840152611962816040850160208701611ec6565b601f01601f19169190910160400192915050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526027908201527f544f524e3a2063616e6e6f74206368616e6765207472616e736665726162696c6040820152661a5d1e481e595d60ca1b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252602d908201527f544f524e3a206f6e6c7920676f7665726e616e63652063616e20706572666f7260408201526c36903a3434b99030b1ba34b7b760991b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611e9e57600080fd5b604052919050565b600067ffffffffffffffff821115611ebc578081fd5b5060209081020190565b60005b83811015611ee1578181015183820152602001611ec9565b83811115611ef0576000848401525b50505050565b6001600160a01b038116811461069257600080fd5b801515811461069257600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c25cb2cef98080abbebec9b5719a4f46d638fbe559a3ab7a9de64272855c3c1064736f6c634300060c0033"; +const isSuperArgs$B = (xs) => xs.length > 1; class TORNMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$A(args)) { + if (isSuperArgs$B(args)) { super(...args); } else { - super(_abi$W, _bytecode$A, args[0]); + super(_abi$Z, _bytecode$B, args[0]); } } getDeployTransaction(_governance, _pausePeriod, _vesting, overrides) { @@ -109314,17 +111271,17 @@ class TORNMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$A; - static abi = _abi$W; + static bytecode = _bytecode$B; + static abi = _abi$Z; static createInterface() { - return new Interface(_abi$W); + return new Interface(_abi$Z); } static connect(address, runner) { - return new contract_Contract(address, _abi$W, runner); + return new contract_Contract(address, _abi$Z, runner); } } -const _abi$V = [ +const _abi$Y = [ { inputs: [], name: "blockTimestamp", @@ -109365,14 +111322,14 @@ const _abi$V = [ type: "function" } ]; -const _bytecode$z = "0x608060405234801561001057600080fd5b5060d28061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c806301ec0fab146041578063adb61832146059578063c565882714605f575b600080fd5b6047607b565b60408051918252519081900360200190f35b60476081565b607960048036036020811015607357600080fd5b50356097565b005b60005481565b60008054156090576000546092565b425b905090565b60005556fea2646970667358221220b2410460a5b24aec9983bcf8349aa3b589a0dff9120af5b704feae536a65813064736f6c634300060c0033"; -const isSuperArgs$z = (xs) => xs.length > 1; +const _bytecode$A = "0x608060405234801561001057600080fd5b5060d28061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c806301ec0fab146041578063adb61832146059578063c565882714605f575b600080fd5b6047607b565b60408051918252519081900360200190f35b60476081565b607960048036036020811015607357600080fd5b50356097565b005b60005481565b60008054156090576000546092565b425b905090565b60005556fea2646970667358221220b2410460a5b24aec9983bcf8349aa3b589a0dff9120af5b704feae536a65813064736f6c634300060c0033"; +const isSuperArgs$A = (xs) => xs.length > 1; class Timestamp__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$z(args)) { + if (isSuperArgs$A(args)) { super(...args); } else { - super(_abi$V, _bytecode$z, args[0]); + super(_abi$Y, _bytecode$A, args[0]); } } getDeployTransaction(overrides) { @@ -109384,17 +111341,17 @@ class Timestamp__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$z; - static abi = _abi$V; + static bytecode = _bytecode$A; + static abi = _abi$Y; static createInterface() { - return new Interface(_abi$V); + return new Interface(_abi$Y); } static connect(address, runner) { - return new contract_Contract(address, _abi$V, runner); + return new contract_Contract(address, _abi$Y, runner); } } -const _abi$U = [ +const _abi$X = [ { inputs: [ { @@ -109590,14 +111547,14 @@ const _abi$U = [ type: "function" } ]; -const _bytecode$y = "0x61012060405234801561001157600080fd5b50604051610d2e380380610d2e833981810160405260a081101561003457600080fd5b5080516020820151604083015160608401516080909401519293919290919084848484846001600160a01b0384166100b3576040805162461bcd60e51b815260206004820152601b60248201527f42656e65666963696172792063616e6e6f7420626520656d7074790000000000604482015290519081900360640190fd5b80821115610108576040805162461bcd60e51b815260206004820152601e60248201527f436c6966662069732067726561746572207468616e206475726174696f6e0000604482015290519081900360640190fd5b6001600160601b0319606086811b821660a05285901b1660805261010081905260c082905282156101395782610141565b610141610154565b60e0525061018698505050505050505050565b600061016861016d60201b6105b81760201c565b905090565b600060015460001461018157600154610168565b504290565b60805160601c60a05160601c60c05160e05161010051610b366101f86000398061024452806103bc528061041e52508061019352806101cf52806105725250806102115280610534525080610289528061030952806104b5528061059652508061016d52806104d75250610b366000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063928d89ae11610071578063928d89ae146101195780639613252114610121578063adb6183214610129578063c565882714610131578063e6fd48bc1461014e578063fc0c546a14610156576100b4565b806301ec0fab146100b957806310786deb146100d357806338af3eed146100db57806344b1231f146100ff57806367097a4b1461010757806386d1a69f1461010f575b600080fd5b6100c161015e565b60408051918252519081900360200190f35b6100c1610164565b6100e361016b565b604080516001600160a01b039092168252519081900360200190f35b6100c161018f565b6100c161041c565b610117610440565b005b6100c1610532565b6100c1610556565b6100c161055c565b6101176004803603602081101561014757600080fd5b503561056b565b6100c1610570565b6100e3610594565b60015481565b62278d0081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006101ba61055c565b10156101c857506000610419565b60006101fc7f00000000000000000000000000000000000000000000000000000000000000006101f661055c565b906105d1565b9050600061020d8262278d0061061c565b90507f000000000000000000000000000000000000000000000000000000000000000081101561024257600092505050610419565b7f0000000000000000000000000000000000000000000000000000000000000000811061030557604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b1580156102cf57600080fd5b505afa1580156102e3573d6000803e3d6000fd5b505050506040513d60208110156102f957600080fd5b50519250610419915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561037457600080fd5b505afa158015610388573d6000803e3d6000fd5b505050506040513d602081101561039e57600080fd5b505160008054919250906103b390839061065e565b905060006103eb7f00000000000000000000000000000000000000000000000000000000000000006103e584876106b8565b9061061c565b90506000610404600054836105d190919063ffffffff16565b90506104108482610711565b96505050505050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061044a61018f565b905060008111610498576040805162461bcd60e51b81526020600482015260146024820152734e6f20746f6b656e7320746f2072656c6561736560601b604482015290519081900360640190fd5b6000546104a5908261065e565b6000556104fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610727565b6040805182815290517ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c5659181900360200190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b60006105666105b8565b905090565b600155565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001546000146105cc57600154610566565b504290565b600061061383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061077e565b90505b92915050565b600061061383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610815565b600082820183811015610613576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826106c757506000610616565b828202828482816106d457fe5b04146106135760405162461bcd60e51b8152600401808060200182810382526021815260200180610ab66021913960400191505060405180910390fd5b60008183106107205781610613565b5090919050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261077990849061087a565b505050565b6000818484111561080d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107d25781810151838201526020016107ba565b50505050905090810190601f1680156107ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836108645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107d25781810151838201526020016107ba565b50600083858161087057fe5b0495945050505050565b60606108cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661092b9092919063ffffffff16565b805190915015610779578080602001905160208110156108ee57600080fd5b50516107795760405162461bcd60e51b815260040180806020018281038252602a815260200180610ad7602a913960400191505060405180910390fd5b606061093a8484600085610942565b949350505050565b606061094d85610aaf565b61099e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106109dd5780518252601f1990920191602091820191016109be565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610a3f576040519150601f19603f3d011682016040523d82523d6000602084013e610a44565b606091505b50915091508115610a5857915061093a9050565b805115610a685780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156107d25781810151838201526020016107ba565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220852e02606e74d747094138d7e10fc9f005278a953559d85ca961b67f95c9fa8f64736f6c634300060c0033"; -const isSuperArgs$y = (xs) => xs.length > 1; +const _bytecode$z = "0x61012060405234801561001157600080fd5b50604051610d2e380380610d2e833981810160405260a081101561003457600080fd5b5080516020820151604083015160608401516080909401519293919290919084848484846001600160a01b0384166100b3576040805162461bcd60e51b815260206004820152601b60248201527f42656e65666963696172792063616e6e6f7420626520656d7074790000000000604482015290519081900360640190fd5b80821115610108576040805162461bcd60e51b815260206004820152601e60248201527f436c6966662069732067726561746572207468616e206475726174696f6e0000604482015290519081900360640190fd5b6001600160601b0319606086811b821660a05285901b1660805261010081905260c082905282156101395782610141565b610141610154565b60e0525061018698505050505050505050565b600061016861016d60201b6105b81760201c565b905090565b600060015460001461018157600154610168565b504290565b60805160601c60a05160601c60c05160e05161010051610b366101f86000398061024452806103bc528061041e52508061019352806101cf52806105725250806102115280610534525080610289528061030952806104b5528061059652508061016d52806104d75250610b366000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063928d89ae11610071578063928d89ae146101195780639613252114610121578063adb6183214610129578063c565882714610131578063e6fd48bc1461014e578063fc0c546a14610156576100b4565b806301ec0fab146100b957806310786deb146100d357806338af3eed146100db57806344b1231f146100ff57806367097a4b1461010757806386d1a69f1461010f575b600080fd5b6100c161015e565b60408051918252519081900360200190f35b6100c1610164565b6100e361016b565b604080516001600160a01b039092168252519081900360200190f35b6100c161018f565b6100c161041c565b610117610440565b005b6100c1610532565b6100c1610556565b6100c161055c565b6101176004803603602081101561014757600080fd5b503561056b565b6100c1610570565b6100e3610594565b60015481565b62278d0081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006101ba61055c565b10156101c857506000610419565b60006101fc7f00000000000000000000000000000000000000000000000000000000000000006101f661055c565b906105d1565b9050600061020d8262278d0061061c565b90507f000000000000000000000000000000000000000000000000000000000000000081101561024257600092505050610419565b7f0000000000000000000000000000000000000000000000000000000000000000811061030557604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b1580156102cf57600080fd5b505afa1580156102e3573d6000803e3d6000fd5b505050506040513d60208110156102f957600080fd5b50519250610419915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561037457600080fd5b505afa158015610388573d6000803e3d6000fd5b505050506040513d602081101561039e57600080fd5b505160008054919250906103b390839061065e565b905060006103eb7f00000000000000000000000000000000000000000000000000000000000000006103e584876106b8565b9061061c565b90506000610404600054836105d190919063ffffffff16565b90506104108482610711565b96505050505050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061044a61018f565b905060008111610498576040805162461bcd60e51b81526020600482015260146024820152734e6f20746f6b656e7320746f2072656c6561736560601b604482015290519081900360640190fd5b6000546104a5908261065e565b6000556104fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610727565b6040805182815290517ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c5659181900360200190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b60006105666105b8565b905090565b600155565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001546000146105cc57600154610566565b504290565b600061061383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061077e565b90505b92915050565b600061061383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610815565b600082820183811015610613576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826106c757506000610616565b828202828482816106d457fe5b04146106135760405162461bcd60e51b8152600401808060200182810382526021815260200180610ab66021913960400191505060405180910390fd5b60008183106107205781610613565b5090919050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261077990849061087a565b505050565b6000818484111561080d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107d25781810151838201526020016107ba565b50505050905090810190601f1680156107ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836108645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107d25781810151838201526020016107ba565b50600083858161087057fe5b0495945050505050565b60606108cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661092b9092919063ffffffff16565b805190915015610779578080602001905160208110156108ee57600080fd5b50516107795760405162461bcd60e51b815260040180806020018281038252602a815260200180610ad7602a913960400191505060405180910390fd5b606061093a8484600085610942565b949350505050565b606061094d85610aaf565b61099e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106109dd5780518252601f1990920191602091820191016109be565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610a3f576040519150601f19603f3d011682016040523d82523d6000602084013e610a44565b606091505b50915091508115610a5857915061093a9050565b805115610a685780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156107d25781810151838201526020016107ba565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220852e02606e74d747094138d7e10fc9f005278a953559d85ca961b67f95c9fa8f64736f6c634300060c0033"; +const isSuperArgs$z = (xs) => xs.length > 1; class VestingMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$y(args)) { + if (isSuperArgs$z(args)) { super(...args); } else { - super(_abi$U, _bytecode$y, args[0]); + super(_abi$X, _bytecode$z, args[0]); } } getDeployTransaction(_token, _beneficiary, _startTimestamp, _cliffInMonths, _durationInMonths, overrides) { @@ -109623,17 +111580,17 @@ class VestingMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$y; - static abi = _abi$U; + static bytecode = _bytecode$z; + static abi = _abi$X; static createInterface() { - return new Interface(_abi$U); + return new Interface(_abi$X); } static connect(address, runner) { - return new contract_Contract(address, _abi$U, runner); + return new contract_Contract(address, _abi$X, runner); } } -const _abi$T = [ +const _abi$W = [ { inputs: [ { @@ -110092,14 +112049,14 @@ const _abi$T = [ type: "function" } ]; -const _bytecode$x = "0x60e06040523480156200001157600080fd5b5060405162001b7838038062001b78833981016040819052620000349162000476565b8383838360405180606001604052806026815260200162001b5260269139604051806040016040528060058152602001643b2a27a92760d91b8152508160039080519060200190620000889291906200038d565b5080516200009e9060049060208401906200038d565b50506005805460ff1916601217905550620000b984620001b7565b60601b6001600160601b031916608052620000d483620001b7565b60601b6001600160601b03191660c0526200010782620000f3620001bd565b620001d960201b6200089d1790919060201c565b60a05260005b8151811015620001a857620001598282815181106200012857fe5b6020026020010151600001518383815181106200014157fe5b6020026020010151602001516200021160201b60201c565b6001600660008484815181106200016c57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200010d565b5050505050505050506200061d565b60601c90565b6000620001d4620002f460201b620008c91760201c565b905090565b6000828201838110156200020a5760405162461bcd60e51b8152600401620002019062000548565b60405180910390fd5b9392505050565b6001600160a01b0382166200023a5760405162461bcd60e51b81526004016200020190620005b6565b62000248600083836200030f565b6200026481600254620001d960201b6200089d1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620002979183906200089d620001d9821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002e8908590620005ed565b60405180910390a35050565b60006007546000146200030a57600754620001d4565b504290565b620003278383836200038860201b620008e21760201c565b6001600160a01b03821615806200034557506001600160a01b038316155b806200036957506001600160a01b03831660009081526006602052604090205460ff165b620003885760405162461bcd60e51b815260040162000201906200057f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003d057805160ff191683800117855562000400565b8280016001018555821562000400579182015b8281111562000400578251825591602001919060010190620003e3565b506200040e92915062000412565b5090565b5b808211156200040e576000815560010162000413565b6000604082840312156200043b578081fd5b620004476040620005f6565b82519091506001600160a01b03811681146200046257600080fd5b808252506020820151602082015292915050565b600080600080608085870312156200048c578384fd5b8451935060208086015193506040808701519350606087015160018060401b0380821115620004b9578485fd5b818901915089601f830112620004cd578485fd5b815181811115620004dc578586fd5b620004eb8586830201620005f6565b8181528581019250838601858302850187018d101562000509578788fd5b8794505b828510156200053757620005228d8262000429565b8452600194909401939286019285016200050d565b50989b979a50959850505050505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200061557600080fd5b604052919050565b60805160601c60a05160c05160601c6114e46200066e6000398061046952806106de5250806104c352806105f752806106945250806105d3528061066852806106ff52806107a352506114e46000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638622a689116100b8578063adf898a41161007c578063adf898a414610269578063be040fb014610271578063c39ef8551461027b578063c565882714610283578063dd62ed3e14610296578063f9e54234146102a957610142565b80638622a6891461022b57806395d89b4114610233578063a457c2d71461023b578063a9059cbb1461024e578063adb618321461026157610142565b8063313ce5671161010a578063313ce567146101b557806339509351146101ca5780635aa6e675146101dd5780635c23bdf5146101f25780635d4545a01461020557806370a082311461021857610142565b806301ec0fab1461014757806306fdde0314610165578063095ea7b31461017a57806318160ddd1461019a57806323b872dd146101a2575b600080fd5b61014f6102c9565b60405161015c9190611376565b60405180910390f35b61016d6102cf565b60405161015c9190611087565b61018d610188366004610ed7565b610365565b60405161015c919061107c565b61014f610383565b61018d6101b0366004610e97565b610389565b6101bd610410565b60405161015c919061137f565b61018d6101d8366004610ed7565b610419565b6101e5610467565b60405161015c9190611002565b6101e5610200366004610fb6565b61048b565b61018d610213366004610e48565b610491565b61014f610226366004610e48565b6104a6565b61014f6104c1565b61016d6104e5565b61018d610249366004610ed7565b610546565b61018d61025c366004610ed7565b6105ae565b61014f6105c2565b6101e56105d1565b6102796105f5565b005b610279610692565b610279610291366004610fb6565b6107cc565b61014f6102a4366004610e63565b6107d1565b6102bc6102b7366004610f01565b6107fc565b60405161015c919061102f565b60075481565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561035b5780601f106103305761010080835404028352916020019161035b565b820191906000526020600020905b81548152906001019060200180831161033e57829003601f168201915b5050505050905090565b60006103796103726108e7565b84846108eb565b5060015b92915050565b60025490565b600061039684848461099f565b610406846103a26108e7565b61040185604051806060016040528060288152602001611462602891396001600160a01b038a166000908152600160205260408120906103e06108e7565b6001600160a01b031681526020810191909152604001600020549190610ab4565b6108eb565b5060019392505050565b60055460ff1690565b60006103796104266108e7565b8461040185600160006104376108e7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061089d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60601c90565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561035b5780601f106103305761010080835404028352916020019161035b565b60006103796105536108e7565b846104018560405180606001604052806025815260200161148a602591396001600061057d6108e7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610ab4565b60006103796105bb6108e7565b848461099f565b60006105cc6108c9565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061061e6105c2565b106106445760405162461bcd60e51b815260040161063b90611176565b60405180910390fd5b600061064f336104a6565b905061065b3382610ae0565b61068f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610bc2565b50565b7f00000000000000000000000000000000000000000000000000000000000000006106bb6105c2565b10156106d95760405162461bcd60e51b815260040161063b906111ad565b6107ca7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016107499190611002565b60206040518083038186803b15801561076157600080fd5b505afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190610fce565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190610bc2565b565b600755565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060815167ffffffffffffffff8111801561081657600080fd5b50604051908082528060200260200182016040528015610840578160200160208202803683370190505b50905060005b82518110156108975761086b83828151811061085e57fe5b602002602001015161048b565b82828151811061087757fe5b6001600160a01b0390921660209283029190910190910152600101610846565b50919050565b6000828201838110156108c25760405162461bcd60e51b815260040161063b9061113f565b9392505050565b60006007546000146108dd576007546105cc565b504290565b505050565b3390565b6001600160a01b0383166109115760405162461bcd60e51b815260040161063b906112b1565b6001600160a01b0382166109375760405162461bcd60e51b815260040161063b906110fd565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610992908590611376565b60405180910390a3505050565b6001600160a01b0383166109c55760405162461bcd60e51b815260040161063b9061126c565b6001600160a01b0382166109eb5760405162461bcd60e51b815260040161063b906110ba565b6109f6838383610c18565b610a338160405180606001604052806026815260200161143c602691396001600160a01b0386166000908152602081905260409020549190610ab4565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610a62908261089d565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610992908590611376565b60008184841115610ad85760405162461bcd60e51b815260040161063b9190611087565b505050900390565b6001600160a01b038216610b065760405162461bcd60e51b815260040161063b9061122b565b610b1282600083610c18565b610b4f8160405180606001604052806022815260200161141a602291396001600160a01b0385166000908152602081905260409020549190610ab4565b6001600160a01b038316600090815260208190526040902055600254610b759082610c7f565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bb6908590611376565b60405180910390a35050565b6108e28363a9059cbb60e01b8484604051602401610be1929190611016565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610cc1565b610c238383836108e2565b6001600160a01b0382161580610c4057506001600160a01b038316155b80610c6357506001600160a01b03831660009081526006602052604090205460ff165b6108e25760405162461bcd60e51b815260040161063b906111f4565b60006108c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab4565b6060610d16826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d509092919063ffffffff16565b8051909150156108e25780806020019051810190610d349190610f96565b6108e25760405162461bcd60e51b815260040161063b9061132c565b6060610d5f8484600085610d67565b949350505050565b6060610d7285610e2b565b610d8e5760405162461bcd60e51b815260040161063b906112f5565b60006060866001600160a01b03168587604051610dab9190610fe6565b60006040518083038185875af1925050503d8060008114610de8576040519150601f19603f3d011682016040523d82523d6000602084013e610ded565b606091505b50915091508115610e01579150610d5f9050565b805115610e115780518082602001fd5b8360405162461bcd60e51b815260040161063b9190611087565b3b151590565b80356001600160a01b038116811461037d57600080fd5b600060208284031215610e59578081fd5b6108c28383610e31565b60008060408385031215610e75578081fd5b610e7f8484610e31565b9150610e8e8460208501610e31565b90509250929050565b600080600060608486031215610eab578081fd5b8335610eb681611404565b92506020840135610ec681611404565b929592945050506040919091013590565b60008060408385031215610ee9578182fd5b610ef38484610e31565b946020939093013593505050565b60006020808385031215610f13578182fd5b823567ffffffffffffffff811115610f29578283fd5b8301601f81018513610f39578283fd5b8035610f4c610f47826113b4565b61138d565b8181528381019083850185840285018601891015610f68578687fd5b8694505b83851015610f8a578035835260019490940193918501918501610f6c565b50979650505050505050565b600060208284031215610fa7578081fd5b815180151581146108c2578182fd5b600060208284031215610fc7578081fd5b5035919050565b600060208284031215610fdf578081fd5b5051919050565b60008251610ff88184602087016113d4565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156110705783516001600160a01b03168352928401929184019160010161104b565b50909695505050505050565b901515815260200190565b60006020825282518060208401526110a68160408501602087016113d4565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f41697264726f702072656465656d20706572696f642068617320656e64656400604082015260600190565b60208082526027908201527f41697264726f702072656465656d20706572696f6420686173206e6f7420656e604082015266191959081e595d60ca1b606082015260800190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156113ac57600080fd5b604052919050565b600067ffffffffffffffff8211156113ca578081fd5b5060209081020190565b60005b838110156113ef5781810151838201526020016113d7565b838111156113fe576000848401525b50505050565b6001600160a01b038116811461068f57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220794126baf4ea3c44b9afb84b4d8a20535aca899e75471e5d9bb4c8e671aabde664736f6c634300060c0033546f726e61646f4361736820766f756368657220666f72206561726c792061646f7074657273"; -const isSuperArgs$x = (xs) => xs.length > 1; +const _bytecode$y = "0x60e06040523480156200001157600080fd5b5060405162001b7838038062001b78833981016040819052620000349162000476565b8383838360405180606001604052806026815260200162001b5260269139604051806040016040528060058152602001643b2a27a92760d91b8152508160039080519060200190620000889291906200038d565b5080516200009e9060049060208401906200038d565b50506005805460ff1916601217905550620000b984620001b7565b60601b6001600160601b031916608052620000d483620001b7565b60601b6001600160601b03191660c0526200010782620000f3620001bd565b620001d960201b6200089d1790919060201c565b60a05260005b8151811015620001a857620001598282815181106200012857fe5b6020026020010151600001518383815181106200014157fe5b6020026020010151602001516200021160201b60201c565b6001600660008484815181106200016c57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200010d565b5050505050505050506200061d565b60601c90565b6000620001d4620002f460201b620008c91760201c565b905090565b6000828201838110156200020a5760405162461bcd60e51b8152600401620002019062000548565b60405180910390fd5b9392505050565b6001600160a01b0382166200023a5760405162461bcd60e51b81526004016200020190620005b6565b62000248600083836200030f565b6200026481600254620001d960201b6200089d1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620002979183906200089d620001d9821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002e8908590620005ed565b60405180910390a35050565b60006007546000146200030a57600754620001d4565b504290565b620003278383836200038860201b620008e21760201c565b6001600160a01b03821615806200034557506001600160a01b038316155b806200036957506001600160a01b03831660009081526006602052604090205460ff165b620003885760405162461bcd60e51b815260040162000201906200057f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003d057805160ff191683800117855562000400565b8280016001018555821562000400579182015b8281111562000400578251825591602001919060010190620003e3565b506200040e92915062000412565b5090565b5b808211156200040e576000815560010162000413565b6000604082840312156200043b578081fd5b620004476040620005f6565b82519091506001600160a01b03811681146200046257600080fd5b808252506020820151602082015292915050565b600080600080608085870312156200048c578384fd5b8451935060208086015193506040808701519350606087015160018060401b0380821115620004b9578485fd5b818901915089601f830112620004cd578485fd5b815181811115620004dc578586fd5b620004eb8586830201620005f6565b8181528581019250838601858302850187018d101562000509578788fd5b8794505b828510156200053757620005228d8262000429565b8452600194909401939286019285016200050d565b50989b979a50959850505050505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200061557600080fd5b604052919050565b60805160601c60a05160c05160601c6114e46200066e6000398061046952806106de5250806104c352806105f752806106945250806105d3528061066852806106ff52806107a352506114e46000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638622a689116100b8578063adf898a41161007c578063adf898a414610269578063be040fb014610271578063c39ef8551461027b578063c565882714610283578063dd62ed3e14610296578063f9e54234146102a957610142565b80638622a6891461022b57806395d89b4114610233578063a457c2d71461023b578063a9059cbb1461024e578063adb618321461026157610142565b8063313ce5671161010a578063313ce567146101b557806339509351146101ca5780635aa6e675146101dd5780635c23bdf5146101f25780635d4545a01461020557806370a082311461021857610142565b806301ec0fab1461014757806306fdde0314610165578063095ea7b31461017a57806318160ddd1461019a57806323b872dd146101a2575b600080fd5b61014f6102c9565b60405161015c9190611376565b60405180910390f35b61016d6102cf565b60405161015c9190611087565b61018d610188366004610ed7565b610365565b60405161015c919061107c565b61014f610383565b61018d6101b0366004610e97565b610389565b6101bd610410565b60405161015c919061137f565b61018d6101d8366004610ed7565b610419565b6101e5610467565b60405161015c9190611002565b6101e5610200366004610fb6565b61048b565b61018d610213366004610e48565b610491565b61014f610226366004610e48565b6104a6565b61014f6104c1565b61016d6104e5565b61018d610249366004610ed7565b610546565b61018d61025c366004610ed7565b6105ae565b61014f6105c2565b6101e56105d1565b6102796105f5565b005b610279610692565b610279610291366004610fb6565b6107cc565b61014f6102a4366004610e63565b6107d1565b6102bc6102b7366004610f01565b6107fc565b60405161015c919061102f565b60075481565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561035b5780601f106103305761010080835404028352916020019161035b565b820191906000526020600020905b81548152906001019060200180831161033e57829003601f168201915b5050505050905090565b60006103796103726108e7565b84846108eb565b5060015b92915050565b60025490565b600061039684848461099f565b610406846103a26108e7565b61040185604051806060016040528060288152602001611462602891396001600160a01b038a166000908152600160205260408120906103e06108e7565b6001600160a01b031681526020810191909152604001600020549190610ab4565b6108eb565b5060019392505050565b60055460ff1690565b60006103796104266108e7565b8461040185600160006104376108e7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061089d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60601c90565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561035b5780601f106103305761010080835404028352916020019161035b565b60006103796105536108e7565b846104018560405180606001604052806025815260200161148a602591396001600061057d6108e7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610ab4565b60006103796105bb6108e7565b848461099f565b60006105cc6108c9565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061061e6105c2565b106106445760405162461bcd60e51b815260040161063b90611176565b60405180910390fd5b600061064f336104a6565b905061065b3382610ae0565b61068f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610bc2565b50565b7f00000000000000000000000000000000000000000000000000000000000000006106bb6105c2565b10156106d95760405162461bcd60e51b815260040161063b906111ad565b6107ca7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016107499190611002565b60206040518083038186803b15801561076157600080fd5b505afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190610fce565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190610bc2565b565b600755565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060815167ffffffffffffffff8111801561081657600080fd5b50604051908082528060200260200182016040528015610840578160200160208202803683370190505b50905060005b82518110156108975761086b83828151811061085e57fe5b602002602001015161048b565b82828151811061087757fe5b6001600160a01b0390921660209283029190910190910152600101610846565b50919050565b6000828201838110156108c25760405162461bcd60e51b815260040161063b9061113f565b9392505050565b60006007546000146108dd576007546105cc565b504290565b505050565b3390565b6001600160a01b0383166109115760405162461bcd60e51b815260040161063b906112b1565b6001600160a01b0382166109375760405162461bcd60e51b815260040161063b906110fd565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610992908590611376565b60405180910390a3505050565b6001600160a01b0383166109c55760405162461bcd60e51b815260040161063b9061126c565b6001600160a01b0382166109eb5760405162461bcd60e51b815260040161063b906110ba565b6109f6838383610c18565b610a338160405180606001604052806026815260200161143c602691396001600160a01b0386166000908152602081905260409020549190610ab4565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610a62908261089d565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610992908590611376565b60008184841115610ad85760405162461bcd60e51b815260040161063b9190611087565b505050900390565b6001600160a01b038216610b065760405162461bcd60e51b815260040161063b9061122b565b610b1282600083610c18565b610b4f8160405180606001604052806022815260200161141a602291396001600160a01b0385166000908152602081905260409020549190610ab4565b6001600160a01b038316600090815260208190526040902055600254610b759082610c7f565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bb6908590611376565b60405180910390a35050565b6108e28363a9059cbb60e01b8484604051602401610be1929190611016565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610cc1565b610c238383836108e2565b6001600160a01b0382161580610c4057506001600160a01b038316155b80610c6357506001600160a01b03831660009081526006602052604090205460ff165b6108e25760405162461bcd60e51b815260040161063b906111f4565b60006108c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab4565b6060610d16826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d509092919063ffffffff16565b8051909150156108e25780806020019051810190610d349190610f96565b6108e25760405162461bcd60e51b815260040161063b9061132c565b6060610d5f8484600085610d67565b949350505050565b6060610d7285610e2b565b610d8e5760405162461bcd60e51b815260040161063b906112f5565b60006060866001600160a01b03168587604051610dab9190610fe6565b60006040518083038185875af1925050503d8060008114610de8576040519150601f19603f3d011682016040523d82523d6000602084013e610ded565b606091505b50915091508115610e01579150610d5f9050565b805115610e115780518082602001fd5b8360405162461bcd60e51b815260040161063b9190611087565b3b151590565b80356001600160a01b038116811461037d57600080fd5b600060208284031215610e59578081fd5b6108c28383610e31565b60008060408385031215610e75578081fd5b610e7f8484610e31565b9150610e8e8460208501610e31565b90509250929050565b600080600060608486031215610eab578081fd5b8335610eb681611404565b92506020840135610ec681611404565b929592945050506040919091013590565b60008060408385031215610ee9578182fd5b610ef38484610e31565b946020939093013593505050565b60006020808385031215610f13578182fd5b823567ffffffffffffffff811115610f29578283fd5b8301601f81018513610f39578283fd5b8035610f4c610f47826113b4565b61138d565b8181528381019083850185840285018601891015610f68578687fd5b8694505b83851015610f8a578035835260019490940193918501918501610f6c565b50979650505050505050565b600060208284031215610fa7578081fd5b815180151581146108c2578182fd5b600060208284031215610fc7578081fd5b5035919050565b600060208284031215610fdf578081fd5b5051919050565b60008251610ff88184602087016113d4565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156110705783516001600160a01b03168352928401929184019160010161104b565b50909695505050505050565b901515815260200190565b60006020825282518060208401526110a68160408501602087016113d4565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f41697264726f702072656465656d20706572696f642068617320656e64656400604082015260600190565b60208082526027908201527f41697264726f702072656465656d20706572696f6420686173206e6f7420656e604082015266191959081e595d60ca1b606082015260800190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156113ac57600080fd5b604052919050565b600067ffffffffffffffff8211156113ca578081fd5b5060209081020190565b60005b838110156113ef5781810151838201526020016113d7565b838111156113fe576000848401525b50505050565b6001600160a01b038116811461068f57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220794126baf4ea3c44b9afb84b4d8a20535aca899e75471e5d9bb4c8e671aabde664736f6c634300060c0033546f726e61646f4361736820766f756368657220666f72206561726c792061646f7074657273"; +const isSuperArgs$y = (xs) => xs.length > 1; class VoucherMock__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$x(args)) { + if (isSuperArgs$y(args)) { super(...args); } else { - super(_abi$T, _bytecode$x, args[0]); + super(_abi$W, _bytecode$y, args[0]); } } getDeployTransaction(_torn, _governance, _duration, _airdrops, overrides) { @@ -110123,17 +112080,17 @@ class VoucherMock__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$x; - static abi = _abi$T; + static bytecode = _bytecode$y; + static abi = _abi$W; static createInterface() { - return new Interface(_abi$T); + return new Interface(_abi$W); } static connect(address, runner) { - return new contract_Contract(address, _abi$T, runner); + return new contract_Contract(address, _abi$W, runner); } } -var index$t = /*#__PURE__*/Object.freeze({ +var index$u = /*#__PURE__*/Object.freeze({ __proto__: null, AirdropMock__factory: AirdropMock__factory, ENSMock__factory: ENSMock__factory, @@ -110143,7 +112100,7 @@ var index$t = /*#__PURE__*/Object.freeze({ VoucherMock__factory: VoucherMock__factory }); -const _abi$S = [ +const _abi$V = [ { inputs: [ { @@ -110211,14 +112168,14 @@ const _abi$S = [ type: "function" } ]; -const _bytecode$w = "0x60806040523480156200001157600080fd5b506040516200054038038062000540833981016040819052620000349162000396565b60006200004183620001c2565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040162000073919062000467565b60206040518083038186803b1580156200008c57600080fd5b505afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c791906200044e565b11620000f05760405162461bcd60e51b8152600401620000e7906200049d565b60405180910390fd5b60005b8251811015620001bd57816001600160a01b031663a9059cbb8483815181106200011957fe5b6020026020010151600001518584815181106200013257fe5b6020026020010151602001516040518363ffffffff1660e01b81526004016200015d9291906200047b565b602060405180830381600087803b1580156200017857600080fd5b505af11580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b3919062000374565b50600101620000f3565b506000ff5b600080620001cf62000310565b600114620001f257738595bfb0d940dfedc98943fa8a907091203f25ee62000203565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906200023490869060040162000494565b60206040518083038186803b1580156200024d57600080fd5b505afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000355565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b8152600401620002b5919062000494565b60206040518083038186803b158015620002ce57600080fd5b505afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000355565b9392505050565b4690565b60006040828403121562000326578081fd5b620003326040620004df565b90508151620003418162000526565b808252506020820151602082015292915050565b60006020828403121562000367578081fd5b8151620003098162000526565b60006020828403121562000386578081fd5b8151801515811462000309578182fd5b6000806040808486031215620003aa578182fd5b8351602080860151919450906001600160401b03811115620003ca578384fd5b8501601f81018713620003db578384fd5b8051620003f2620003ec8262000506565b620004df565b81815283810190838501868402850186018b10156200040f578788fd5b8794505b838510156200043d57620004288b8262000314565b83526001949094019391850191860162000413565b508096505050505050509250929050565b60006020828403121562000460578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b60208082526022908201527f42616c616e636520697320302c2061697264726f7020616c726561647920646f6040820152616e6560f01b606082015260800190565b6040518181016001600160401b0381118282101715620004fe57600080fd5b604052919050565b60006001600160401b038211156200051c578081fd5b5060209081020190565b6001600160a01b03811681146200053c57600080fd5b5056fe"; -const isSuperArgs$w = (xs) => xs.length > 1; +const _bytecode$x = "0x60806040523480156200001157600080fd5b506040516200054038038062000540833981016040819052620000349162000396565b60006200004183620001c2565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040162000073919062000467565b60206040518083038186803b1580156200008c57600080fd5b505afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c791906200044e565b11620000f05760405162461bcd60e51b8152600401620000e7906200049d565b60405180910390fd5b60005b8251811015620001bd57816001600160a01b031663a9059cbb8483815181106200011957fe5b6020026020010151600001518584815181106200013257fe5b6020026020010151602001516040518363ffffffff1660e01b81526004016200015d9291906200047b565b602060405180830381600087803b1580156200017857600080fd5b505af11580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b3919062000374565b50600101620000f3565b506000ff5b600080620001cf62000310565b600114620001f257738595bfb0d940dfedc98943fa8a907091203f25ee62000203565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906200023490869060040162000494565b60206040518083038186803b1580156200024d57600080fd5b505afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000355565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b8152600401620002b5919062000494565b60206040518083038186803b158015620002ce57600080fd5b505afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000355565b9392505050565b4690565b60006040828403121562000326578081fd5b620003326040620004df565b90508151620003418162000526565b808252506020820151602082015292915050565b60006020828403121562000367578081fd5b8151620003098162000526565b60006020828403121562000386578081fd5b8151801515811462000309578182fd5b6000806040808486031215620003aa578182fd5b8351602080860151919450906001600160401b03811115620003ca578384fd5b8501601f81018713620003db578384fd5b8051620003f2620003ec8262000506565b620004df565b81815283810190838501868402850186018b10156200040f578788fd5b8794505b838510156200043d57620004288b8262000314565b83526001949094019391850191860162000413565b508096505050505050509250929050565b60006020828403121562000460578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b60208082526022908201527f42616c616e636520697320302c2061697264726f7020616c726561647920646f6040820152616e6560f01b606082015260800190565b6040518181016001600160401b0381118282101715620004fe57600080fd5b604052919050565b60006001600160401b038211156200051c578081fd5b5060209081020190565b6001600160a01b03811681146200053c57600080fd5b5056fe"; +const isSuperArgs$x = (xs) => xs.length > 1; class Airdrop__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$w(args)) { + if (isSuperArgs$x(args)) { super(...args); } else { - super(_abi$S, _bytecode$w, args[0]); + super(_abi$V, _bytecode$x, args[0]); } } getDeployTransaction(tokenAddress, targets, overrides) { @@ -110230,17 +112187,17 @@ class Airdrop__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$w; - static abi = _abi$S; + static bytecode = _bytecode$x; + static abi = _abi$V; static createInterface() { - return new Interface(_abi$S); + return new Interface(_abi$V); } static connect(address, runner) { - return new contract_Contract(address, _abi$S, runner); + return new contract_Contract(address, _abi$V, runner); } } -const _abi$R = [ +const _abi$U = [ { anonymous: false, inputs: [ @@ -110601,16 +112558,16 @@ const _abi$R = [ } ]; class ERC20Permit__factory { - static abi = _abi$R; + static abi = _abi$U; static createInterface() { - return new Interface(_abi$R); + return new Interface(_abi$U); } static connect(address, runner) { - return new contract_Contract(address, _abi$R, runner); + return new contract_Contract(address, _abi$U, runner); } } -const _abi$Q = [ +const _abi$T = [ { inputs: [ { @@ -111206,14 +113163,14 @@ const _abi$Q = [ type: "function" } ]; -const _bytecode$v = "0x60c06040523480156200001157600080fd5b506040516200288338038062002883833981016040819052620000349162000699565b604080518082018252600b81526a0a8dee4dcc2c8de86c2e6d60ab1b6020808301918252835180850190945260048452632a27a92760e11b9084015281519192916200008391600391620005a7565b50805162000099906004906020840190620005a7565b50506005805460ff1916601217905550620000b3620001f0565b506008805460ff199081169091556001600160601b0319606085901b1660a0526001600160a01b0384166000908152600960205260408120805490921660011790915583905b8251811015620001765760008382815181106200011257fe5b60200260200101516000015190506200014a818584815181106200013257fe5b602002602001015160200151620002ac60201b60201c565b6001600160a01b03166000908152600960205260409020805460ff1916600190811790915501620000f9565b506200019a83620001866200038f565b6200039360201b62000cbd1790919060201c565b608052620001a7620003c4565b620001b16200043b565b6a084595161401484a00000014620001e65760405162461bcd60e51b8152600401620001dd906200086b565b60405180910390fd5b5050505062000909565b600080620001fd62000441565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200022c62000445565b805160209182012060408051808201825260018152603160f81b90840152516200027e93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc691879130910162000781565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b6001600160a01b038216620002d55760405162461bcd60e51b8152600401620001dd90620008a2565b620002e360008383620004df565b620002ff816002546200039360201b62000cbd1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200033291839062000cbd62000393821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062000383908590620008d9565b60405180910390a35050565b4290565b600082820183811015620003bb5760405162461bcd60e51b8152600401620001dd90620007ad565b90505b92915050565b60085460ff1615620003ea5760405162461bcd60e51b8152600401620001dd9062000841565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620004226200059a565b6040516200043191906200076d565b60405180910390a1565b60025490565b4690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620004d55780601f10620004a957610100808354040283529160200191620004d5565b820191906000526020600020905b815481529060010190602001808311620004b757829003601f168201915b5050505050905090565b620004f78383836200059560201b620006aa1760201c565b620005016200059e565b15806200052657506001600160a01b03831660009081526009602052604090205460ff165b806200054a57506001600160a01b03821660009081526009602052604090205460ff165b620005695760405162461bcd60e51b8152600401620001dd906200081b565b6001600160a01b038216301415620005955760405162461bcd60e51b8152600401620001dd90620007e4565b505050565b3390565b60085460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ea57805160ff19168380011785556200061a565b828001600101855582156200061a579182015b828111156200061a578251825591602001919060010190620005fd565b50620006289291506200062c565b5090565b5b808211156200062857600081556001016200062d565b80516001600160a01b0381168114620003be57600080fd5b6000604082840312156200066d578081fd5b620006796040620008e2565b905062000687838362000643565b81526020820151602082015292915050565b600080600060608486031215620006ae578283fd5b620006ba858562000643565b9250602080850151925060408086015160018060401b0380821115620006de578485fd5b818801915088601f830112620006f2578485fd5b81518181111562000701578586fd5b620007108586830201620008e2565b8181528581019250838601858302850187018c10156200072e578788fd5b8794505b828510156200075c57620007478c826200065b565b84526001949094019392860192850162000732565b508096505050505050509250925092565b6001600160a01b0391909116815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601c908201527f544f524e3a20696e636f727265637420646973747269627574696f6e00000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200090157600080fd5b604052919050565b60805160a05160601c611f3a62000949600039806104d752806105ff52806106cc528061078552806109715250806107245280610c705250611f3a6000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806379cc6790116100de578063a9059cbb11610097578063cea9d26f11610071578063cea9d26f146102fb578063d505accf1461030e578063dc0f0d1214610321578063dd62ed3e1461032957610173565b8063a9059cbb146102d8578063adb61832146102eb578063adc879e9146102f357610173565b806379cc6790146102715780637ecebe001461028457806381893c7c14610297578063885ad0cf146102aa57806395d89b41146102bd578063a457c2d7146102c557610173565b80633c8d76d1116101305780633c8d76d11461020657806342966c681461021b5780635aa6e6751461022e5780635c975abb146102435780635d4545a01461024b57806370a082311461025e57610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b657806323b872dd146101cb578063313ce567146101de57806339509351146101f3575b600080fd5b61018061033c565b60405161018d9190611875565b60405180910390f35b6101a96101a436600461163a565b6103d3565b60405161018d91906117ec565b6101be6103f1565b60405161018d9190611d9a565b6101a96101d9366004611585565b6103f7565b6101e661047e565b60405161018d9190611da3565b6101a961020136600461163a565b610487565b610219610214366004611665565b6104d5565b005b61021961022936600461174e565b6105e9565b6102366105fd565b60405161018d91906117bf565b6101a9610621565b6101a9610259366004611531565b61062a565b6101be61026c366004611531565b61063f565b61021961027f36600461163a565b61065a565b6101be610292366004611531565b6106af565b6102196102a5366004611702565b6106ca565b6102196102b8366004611665565b610783565b61018061088a565b6101a96102d336600461163a565b6108eb565b6101a96102e636600461163a565b610953565b6101be610967565b6101be61096b565b61021961030936600461173a565b61096f565b61021961031c3660046115c5565b610b2d565b6101be610c6e565b6101be61033736600461154d565b610c92565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090505b90565b60006103e76103e0610ce9565b8484610ced565b5060015b92915050565b60025490565b6000610404848484610da1565b61047484610410610ce9565b61046f85604051806060016040528060288152602001611e94602891396001600160a01b038a1660009081526001602052604081209061044e610ce9565b6001600160a01b031681526020810191909152604001600020549190610eb6565b610ced565b5060019392505050565b60055460ff1690565b60006103e7610494610ce9565b8461046f85600160006104a5610ce9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610cbd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610507610ce9565b6001600160a01b0316146105365760405162461bcd60e51b815260040161052d90611d16565b60405180910390fd5b60005b81518110156105e55760006009600084848151811061055457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f9ef90a89b00db1a1891a357dc96b2a273add9d883e378c350d22bad87a9d7d308282815181106105c057fe5b60200260200101516040516105d591906117bf565b60405180910390a1600101610539565b5050565b6105fa6105f4610ce9565b82610ee2565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085460ff1690565b60096020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b600061068c82604051806060016040528060248152602001611ebc6024913961068586610337610ce9565b9190610eb6565b90506106a08361069a610ce9565b83610ced565b6106aa8383610ee2565b505050565b6001600160a01b031660009081526006602052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106fc610ce9565b6001600160a01b0316146107225760405162461bcd60e51b815260040161052d90611d16565b7f000000000000000000000000000000000000000000000000000000000000000061074b610967565b116107685760405162461bcd60e51b815260040161052d90611b0b565b801561077b57610776610fc4565b6105fa565b6105fa611030565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107b5610ce9565b6001600160a01b0316146107db5760405162461bcd60e51b815260040161052d90611d16565b60005b81518110156105e5576001600960008484815181106107f957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc0582828151811061086557fe5b602002602001015160405161087a91906117bf565b60405180910390a16001016107de565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103c85780601f1061039d576101008083540402835291602001916103c8565b60006103e76108f8610ce9565b8461046f85604051806060016040528060258152602001611ee06025913960016000610922610ce9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610eb6565b60006103e7610960610ce9565b8484610da1565b4290565b4690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109a1610ce9565b6001600160a01b0316146109c75760405162461bcd60e51b815260040161052d90611d16565b6001600160a01b0382166109ed5760405162461bcd60e51b815260040161052d90611c8a565b6001600160a01b038316610a56574760008215610a1357610a0e8284611089565b610a15565b815b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610a4e573d6000803e3d6000fd5b5050506106aa565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610a859030906004016117bf565b60206040518083038186803b158015610a9d57600080fd5b505afa158015610ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad59190611766565b905060008215610aee57610ae98284611089565b610af0565b815b905060008111610b125760405162461bcd60e51b815260040161052d90611d63565b610b266001600160a01b038616858361109f565b5050505050565b83610b36610967565b1115610b545760405162461bcd60e51b815260040161052d90611a00565b6001600160a01b0387166000908152600660209081526040808320549051610ba7927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c91016117f7565b6040516020818303038152906040528051906020012090506000611901610bcc6110f5565b83604051602001610bdf9392919061179a565b6040516020818303038152906040528051906020012090506000610c0582878787611134565b9050896001600160a01b0316816001600160a01b031614610c385760405162461bcd60e51b815260040161052d90611b52565b6001600160a01b038a16600090815260066020526040902080546001019055610c628a8a8a610ced565b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600082820183811015610ce25760405162461bcd60e51b815260040161052d90611992565b9392505050565b3390565b6001600160a01b038316610d135760405162461bcd60e51b815260040161052d90611c0f565b6001600160a01b038216610d395760405162461bcd60e51b815260040161052d90611950565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d94908590611d9a565b60405180910390a3505050565b6001600160a01b038316610dc75760405162461bcd60e51b815260040161052d90611bca565b6001600160a01b038216610ded5760405162461bcd60e51b815260040161052d906118df565b610df883838361122c565b610e3581604051806060016040528060268152602001611e6e602691396001600160a01b0386166000908152602081905260409020549190610eb6565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e649082610cbd565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d94908590611d9a565b60008184841115610eda5760405162461bcd60e51b815260040161052d9190611875565b505050900390565b6001600160a01b038216610f085760405162461bcd60e51b815260040161052d90611b89565b610f148260008361122c565b610f5181604051806060016040528060228152602001611e4c602291396001600160a01b0385166000908152602081905260409020549190610eb6565b6001600160a01b038316600090815260208190526040902055600254610f7790826112cb565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb8908590611d9a565b60405180910390a35050565b60085460ff16610fe65760405162461bcd60e51b815260040161052d90611922565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611019610ce9565b60405161102691906117bf565b60405180910390a1565b60085460ff16156110535760405162461bcd60e51b815260040161052d90611a9f565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611019610ce9565b60008183106110985781610ce2565b5090919050565b6106aa8363a9059cbb60e01b84846040516024016110be9291906117d3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261130d565b6000806007600061110461096b565b8152602081019190915260400160002054905080156111245790506103d0565b61112c61139c565b9150506103d0565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156111765760405162461bcd60e51b815260040161052d90611a5d565b8360ff16601b148061118b57508360ff16601c145b6111a75760405162461bcd60e51b815260040161052d90611ac9565b6000600186868686604051600081526020016040526040516111cc9493929190611857565b6020604051602081039080840390855afa1580156111ee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112215760405162461bcd60e51b815260040161052d906118a8565b90505b949350505050565b6112378383836106aa565b61123f610621565b158061126357506001600160a01b03831660009081526009602052604090205460ff165b8061128657506001600160a01b03821660009081526009602052604090205460ff165b6112a25760405162461bcd60e51b815260040161052d90611a37565b6001600160a01b0382163014156106aa5760405162461bcd60e51b815260040161052d906119c9565b6000610ce283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eb6565b6060611362826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114529092919063ffffffff16565b8051909150156106aa5780806020019051810190611380919061171e565b6106aa5760405162461bcd60e51b815260040161052d90611ccc565b6000806113a761096b565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6113d461033c565b805160209182012060408051808201825260018152603160f81b908401525161142493927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc691879130910161182b565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b60606112248484600085606061146785611520565b6114835760405162461bcd60e51b815260040161052d90611c53565b60006060866001600160a01b031685876040516114a0919061177e565b60006040518083038185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b509150915081156114f65791506112249050565b8051156115065780518082602001fd5b8360405162461bcd60e51b815260040161052d9190611875565b3b151590565b80356103eb81611e28565b600060208284031215611542578081fd5b8135610ce281611e28565b6000806040838503121561155f578081fd5b823561156a81611e28565b9150602083013561157a81611e28565b809150509250929050565b600080600060608486031215611599578081fd5b83356115a481611e28565b925060208401356115b481611e28565b929592945050506040919091013590565b600080600080600080600060e0888a0312156115df578283fd5b87356115ea81611e28565b965060208801356115fa81611e28565b95506040880135945060608801359350608088013560ff8116811461161d578384fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561164c578182fd5b823561165781611e28565b946020939093013593505050565b60006020808385031215611677578182fd5b823567ffffffffffffffff81111561168d578283fd5b8301601f8101851361169d578283fd5b80356116b06116ab82611dd8565b611db1565b81815283810190838501858402850186018910156116cc578687fd5b8694505b838510156116f6576116e28982611526565b8352600194909401939185019185016116d0565b50979650505050505050565b600060208284031215611713578081fd5b8135610ce281611e3d565b60006020828403121561172f578081fd5b8151610ce281611e3d565b600080600060608486031215611599578283fd5b60006020828403121561175f578081fd5b5035919050565b600060208284031215611777578081fd5b5051919050565b60008251611790818460208701611df8565b9190910192915050565b60f09390931b6001600160f01b03191683526002830191909152602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082528251806020840152611894816040850160208701611df8565b601f01601f19169190910160400192915050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526027908201527f544f524e3a2063616e6e6f74206368616e6765207472616e736665726162696c6040820152661a5d1e481e595d60ca1b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252602d908201527f544f524e3a206f6e6c7920676f7665726e616e63652063616e20706572666f7260408201526c36903a3434b99030b1ba34b7b760991b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611dd057600080fd5b604052919050565b600067ffffffffffffffff821115611dee578081fd5b5060209081020190565b60005b83811015611e13578181015183820152602001611dfb565b83811115611e22576000848401525b50505050565b6001600160a01b03811681146105fa57600080fd5b80151581146105fa57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fd515804eca384cb14c99861e60dc5364ae65ba9ddfdfe00d195788ee631d01064736f6c634300060c0033"; -const isSuperArgs$v = (xs) => xs.length > 1; +const _bytecode$w = "0x60c06040523480156200001157600080fd5b506040516200288338038062002883833981016040819052620000349162000699565b604080518082018252600b81526a0a8dee4dcc2c8de86c2e6d60ab1b6020808301918252835180850190945260048452632a27a92760e11b9084015281519192916200008391600391620005a7565b50805162000099906004906020840190620005a7565b50506005805460ff1916601217905550620000b3620001f0565b506008805460ff199081169091556001600160601b0319606085901b1660a0526001600160a01b0384166000908152600960205260408120805490921660011790915583905b8251811015620001765760008382815181106200011257fe5b60200260200101516000015190506200014a818584815181106200013257fe5b602002602001015160200151620002ac60201b60201c565b6001600160a01b03166000908152600960205260409020805460ff1916600190811790915501620000f9565b506200019a83620001866200038f565b6200039360201b62000cbd1790919060201c565b608052620001a7620003c4565b620001b16200043b565b6a084595161401484a00000014620001e65760405162461bcd60e51b8152600401620001dd906200086b565b60405180910390fd5b5050505062000909565b600080620001fd62000441565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200022c62000445565b805160209182012060408051808201825260018152603160f81b90840152516200027e93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc691879130910162000781565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b6001600160a01b038216620002d55760405162461bcd60e51b8152600401620001dd90620008a2565b620002e360008383620004df565b620002ff816002546200039360201b62000cbd1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200033291839062000cbd62000393821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062000383908590620008d9565b60405180910390a35050565b4290565b600082820183811015620003bb5760405162461bcd60e51b8152600401620001dd90620007ad565b90505b92915050565b60085460ff1615620003ea5760405162461bcd60e51b8152600401620001dd9062000841565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620004226200059a565b6040516200043191906200076d565b60405180910390a1565b60025490565b4690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620004d55780601f10620004a957610100808354040283529160200191620004d5565b820191906000526020600020905b815481529060010190602001808311620004b757829003601f168201915b5050505050905090565b620004f78383836200059560201b620006aa1760201c565b620005016200059e565b15806200052657506001600160a01b03831660009081526009602052604090205460ff165b806200054a57506001600160a01b03821660009081526009602052604090205460ff165b620005695760405162461bcd60e51b8152600401620001dd906200081b565b6001600160a01b038216301415620005955760405162461bcd60e51b8152600401620001dd90620007e4565b505050565b3390565b60085460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ea57805160ff19168380011785556200061a565b828001600101855582156200061a579182015b828111156200061a578251825591602001919060010190620005fd565b50620006289291506200062c565b5090565b5b808211156200062857600081556001016200062d565b80516001600160a01b0381168114620003be57600080fd5b6000604082840312156200066d578081fd5b620006796040620008e2565b905062000687838362000643565b81526020820151602082015292915050565b600080600060608486031215620006ae578283fd5b620006ba858562000643565b9250602080850151925060408086015160018060401b0380821115620006de578485fd5b818801915088601f830112620006f2578485fd5b81518181111562000701578586fd5b620007108586830201620008e2565b8181528581019250838601858302850187018c10156200072e578788fd5b8794505b828510156200075c57620007478c826200065b565b84526001949094019392860192850162000732565b508096505050505050509250925092565b6001600160a01b0391909116815260200190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601c908201527f544f524e3a20696e636f727265637420646973747269627574696f6e00000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b6040518181016001600160401b03811182821017156200090157600080fd5b604052919050565b60805160a05160601c611f3a62000949600039806104d752806105ff52806106cc528061078552806109715250806107245280610c705250611f3a6000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806379cc6790116100de578063a9059cbb11610097578063cea9d26f11610071578063cea9d26f146102fb578063d505accf1461030e578063dc0f0d1214610321578063dd62ed3e1461032957610173565b8063a9059cbb146102d8578063adb61832146102eb578063adc879e9146102f357610173565b806379cc6790146102715780637ecebe001461028457806381893c7c14610297578063885ad0cf146102aa57806395d89b41146102bd578063a457c2d7146102c557610173565b80633c8d76d1116101305780633c8d76d11461020657806342966c681461021b5780635aa6e6751461022e5780635c975abb146102435780635d4545a01461024b57806370a082311461025e57610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b657806323b872dd146101cb578063313ce567146101de57806339509351146101f3575b600080fd5b61018061033c565b60405161018d9190611875565b60405180910390f35b6101a96101a436600461163a565b6103d3565b60405161018d91906117ec565b6101be6103f1565b60405161018d9190611d9a565b6101a96101d9366004611585565b6103f7565b6101e661047e565b60405161018d9190611da3565b6101a961020136600461163a565b610487565b610219610214366004611665565b6104d5565b005b61021961022936600461174e565b6105e9565b6102366105fd565b60405161018d91906117bf565b6101a9610621565b6101a9610259366004611531565b61062a565b6101be61026c366004611531565b61063f565b61021961027f36600461163a565b61065a565b6101be610292366004611531565b6106af565b6102196102a5366004611702565b6106ca565b6102196102b8366004611665565b610783565b61018061088a565b6101a96102d336600461163a565b6108eb565b6101a96102e636600461163a565b610953565b6101be610967565b6101be61096b565b61021961030936600461173a565b61096f565b61021961031c3660046115c5565b610b2d565b6101be610c6e565b6101be61033736600461154d565b610c92565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090505b90565b60006103e76103e0610ce9565b8484610ced565b5060015b92915050565b60025490565b6000610404848484610da1565b61047484610410610ce9565b61046f85604051806060016040528060288152602001611e94602891396001600160a01b038a1660009081526001602052604081209061044e610ce9565b6001600160a01b031681526020810191909152604001600020549190610eb6565b610ced565b5060019392505050565b60055460ff1690565b60006103e7610494610ce9565b8461046f85600160006104a5610ce9565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610cbd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610507610ce9565b6001600160a01b0316146105365760405162461bcd60e51b815260040161052d90611d16565b60405180910390fd5b60005b81518110156105e55760006009600084848151811061055457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f9ef90a89b00db1a1891a357dc96b2a273add9d883e378c350d22bad87a9d7d308282815181106105c057fe5b60200260200101516040516105d591906117bf565b60405180910390a1600101610539565b5050565b6105fa6105f4610ce9565b82610ee2565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085460ff1690565b60096020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b600061068c82604051806060016040528060248152602001611ebc6024913961068586610337610ce9565b9190610eb6565b90506106a08361069a610ce9565b83610ced565b6106aa8383610ee2565b505050565b6001600160a01b031660009081526006602052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106fc610ce9565b6001600160a01b0316146107225760405162461bcd60e51b815260040161052d90611d16565b7f000000000000000000000000000000000000000000000000000000000000000061074b610967565b116107685760405162461bcd60e51b815260040161052d90611b0b565b801561077b57610776610fc4565b6105fa565b6105fa611030565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107b5610ce9565b6001600160a01b0316146107db5760405162461bcd60e51b815260040161052d90611d16565b60005b81518110156105e5576001600960008484815181106107f957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc0582828151811061086557fe5b602002602001015160405161087a91906117bf565b60405180910390a16001016107de565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103c85780601f1061039d576101008083540402835291602001916103c8565b60006103e76108f8610ce9565b8461046f85604051806060016040528060258152602001611ee06025913960016000610922610ce9565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610eb6565b60006103e7610960610ce9565b8484610da1565b4290565b4690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109a1610ce9565b6001600160a01b0316146109c75760405162461bcd60e51b815260040161052d90611d16565b6001600160a01b0382166109ed5760405162461bcd60e51b815260040161052d90611c8a565b6001600160a01b038316610a56574760008215610a1357610a0e8284611089565b610a15565b815b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610a4e573d6000803e3d6000fd5b5050506106aa565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190610a859030906004016117bf565b60206040518083038186803b158015610a9d57600080fd5b505afa158015610ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad59190611766565b905060008215610aee57610ae98284611089565b610af0565b815b905060008111610b125760405162461bcd60e51b815260040161052d90611d63565b610b266001600160a01b038616858361109f565b5050505050565b83610b36610967565b1115610b545760405162461bcd60e51b815260040161052d90611a00565b6001600160a01b0387166000908152600660209081526040808320549051610ba7927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c91016117f7565b6040516020818303038152906040528051906020012090506000611901610bcc6110f5565b83604051602001610bdf9392919061179a565b6040516020818303038152906040528051906020012090506000610c0582878787611134565b9050896001600160a01b0316816001600160a01b031614610c385760405162461bcd60e51b815260040161052d90611b52565b6001600160a01b038a16600090815260066020526040902080546001019055610c628a8a8a610ced565b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600082820183811015610ce25760405162461bcd60e51b815260040161052d90611992565b9392505050565b3390565b6001600160a01b038316610d135760405162461bcd60e51b815260040161052d90611c0f565b6001600160a01b038216610d395760405162461bcd60e51b815260040161052d90611950565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d94908590611d9a565b60405180910390a3505050565b6001600160a01b038316610dc75760405162461bcd60e51b815260040161052d90611bca565b6001600160a01b038216610ded5760405162461bcd60e51b815260040161052d906118df565b610df883838361122c565b610e3581604051806060016040528060268152602001611e6e602691396001600160a01b0386166000908152602081905260409020549190610eb6565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e649082610cbd565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d94908590611d9a565b60008184841115610eda5760405162461bcd60e51b815260040161052d9190611875565b505050900390565b6001600160a01b038216610f085760405162461bcd60e51b815260040161052d90611b89565b610f148260008361122c565b610f5181604051806060016040528060228152602001611e4c602291396001600160a01b0385166000908152602081905260409020549190610eb6565b6001600160a01b038316600090815260208190526040902055600254610f7790826112cb565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb8908590611d9a565b60405180910390a35050565b60085460ff16610fe65760405162461bcd60e51b815260040161052d90611922565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611019610ce9565b60405161102691906117bf565b60405180910390a1565b60085460ff16156110535760405162461bcd60e51b815260040161052d90611a9f565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611019610ce9565b60008183106110985781610ce2565b5090919050565b6106aa8363a9059cbb60e01b84846040516024016110be9291906117d3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261130d565b6000806007600061110461096b565b8152602081019190915260400160002054905080156111245790506103d0565b61112c61139c565b9150506103d0565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156111765760405162461bcd60e51b815260040161052d90611a5d565b8360ff16601b148061118b57508360ff16601c145b6111a75760405162461bcd60e51b815260040161052d90611ac9565b6000600186868686604051600081526020016040526040516111cc9493929190611857565b6020604051602081039080840390855afa1580156111ee573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112215760405162461bcd60e51b815260040161052d906118a8565b90505b949350505050565b6112378383836106aa565b61123f610621565b158061126357506001600160a01b03831660009081526009602052604090205460ff165b8061128657506001600160a01b03821660009081526009602052604090205460ff165b6112a25760405162461bcd60e51b815260040161052d90611a37565b6001600160a01b0382163014156106aa5760405162461bcd60e51b815260040161052d906119c9565b6000610ce283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eb6565b6060611362826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114529092919063ffffffff16565b8051909150156106aa5780806020019051810190611380919061171e565b6106aa5760405162461bcd60e51b815260040161052d90611ccc565b6000806113a761096b565b905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6113d461033c565b805160209182012060408051808201825260018152603160f81b908401525161142493927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc691879130910161182b565b60408051601f1981840301815291815281516020928301206000948552600790925290922082905550905090565b60606112248484600085606061146785611520565b6114835760405162461bcd60e51b815260040161052d90611c53565b60006060866001600160a01b031685876040516114a0919061177e565b60006040518083038185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b509150915081156114f65791506112249050565b8051156115065780518082602001fd5b8360405162461bcd60e51b815260040161052d9190611875565b3b151590565b80356103eb81611e28565b600060208284031215611542578081fd5b8135610ce281611e28565b6000806040838503121561155f578081fd5b823561156a81611e28565b9150602083013561157a81611e28565b809150509250929050565b600080600060608486031215611599578081fd5b83356115a481611e28565b925060208401356115b481611e28565b929592945050506040919091013590565b600080600080600080600060e0888a0312156115df578283fd5b87356115ea81611e28565b965060208801356115fa81611e28565b95506040880135945060608801359350608088013560ff8116811461161d578384fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561164c578182fd5b823561165781611e28565b946020939093013593505050565b60006020808385031215611677578182fd5b823567ffffffffffffffff81111561168d578283fd5b8301601f8101851361169d578283fd5b80356116b06116ab82611dd8565b611db1565b81815283810190838501858402850186018910156116cc578687fd5b8694505b838510156116f6576116e28982611526565b8352600194909401939185019185016116d0565b50979650505050505050565b600060208284031215611713578081fd5b8135610ce281611e3d565b60006020828403121561172f578081fd5b8151610ce281611e3d565b600080600060608486031215611599578283fd5b60006020828403121561175f578081fd5b5035919050565b600060208284031215611777578081fd5b5051919050565b60008251611790818460208701611df8565b9190910192915050565b60f09390931b6001600160f01b03191683526002830191909152602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082528251806020840152611894816040850160208701611df8565b601f01601f19169190910160400192915050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526017908201527f544f524e3a20696e76616c696420726563697069656e74000000000000000000604082015260600190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b6020808252600c908201526b1513d4938e881c185d5cd95960a21b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526027908201527f544f524e3a2063616e6e6f74206368616e6765207472616e736665726162696c6040820152661a5d1e481e595d60ca1b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252602d908201527f544f524e3a206f6e6c7920676f7665726e616e63652063616e20706572666f7260408201526c36903a3434b99030b1ba34b7b760991b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b90815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611dd057600080fd5b604052919050565b600067ffffffffffffffff821115611dee578081fd5b5060209081020190565b60005b83811015611e13578181015183820152602001611dfb565b83811115611e22576000848401525b50505050565b6001600160a01b03811681146105fa57600080fd5b80151581146105fa57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fd515804eca384cb14c99861e60dc5364ae65ba9ddfdfe00d195788ee631d01064736f6c634300060c0033"; +const isSuperArgs$w = (xs) => xs.length > 1; class TORN__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$v(args)) { + if (isSuperArgs$w(args)) { super(...args); } else { - super(_abi$Q, _bytecode$v, args[0]); + super(_abi$T, _bytecode$w, args[0]); } } getDeployTransaction(_governance, _pausePeriod, _vestings, overrides) { @@ -111235,17 +113192,17 @@ class TORN__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$v; - static abi = _abi$Q; + static bytecode = _bytecode$w; + static abi = _abi$T; static createInterface() { - return new Interface(_abi$Q); + return new Interface(_abi$T); } static connect(address, runner) { - return new contract_Contract(address, _abi$Q, runner); + return new contract_Contract(address, _abi$T, runner); } } -const _abi$P = [ +const _abi$S = [ { inputs: [ { @@ -111415,14 +113372,14 @@ const _abi$P = [ type: "function" } ]; -const _bytecode$u = "0x61012060405234801561001157600080fd5b50604051610c8c380380610c8c833981810160405260a081101561003457600080fd5b508051602082015160408301516060840151608090940151929391929091906001600160a01b0384166100ae576040805162461bcd60e51b815260206004820152601b60248201527f42656e65666963696172792063616e6e6f7420626520656d7074790000000000604482015290519081900360640190fd5b80821115610103576040805162461bcd60e51b815260206004820152601e60248201527f436c6966662069732067726561746572207468616e206475726174696f6e0000604482015290519081900360640190fd5b6001600160601b0319606086811b821660a05285901b1660805261010081905260c08290528215610134578261013c565b61013c61014a565b60e0525061014e9350505050565b4290565b60805160601c60a05160601c60c05160e05161010051610acc6101c060003980610203528061037b52806103dd525080610152528061018e52806105215250806101d052806104f352508061024852806102c85280610474528061054552508061012c52806104965250610acc6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063928d89ae11610066578063928d89ae146100fb5780639613252114610103578063adb618321461010b578063e6fd48bc14610113578063fc0c546a1461011b5761009e565b806310786deb146100a357806338af3eed146100bd57806344b1231f146100e157806367097a4b146100e957806386d1a69f146100f1575b600080fd5b6100ab610123565b60408051918252519081900360200190f35b6100c561012a565b604080516001600160a01b039092168252519081900360200190f35b6100ab61014e565b6100ab6103db565b6100f96103ff565b005b6100ab6104f1565b6100ab610515565b6100ab61051b565b6100ab61051f565b6100c5610543565b62278d0081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000061017961051b565b1015610187575060006103d8565b60006101bb7f00000000000000000000000000000000000000000000000000000000000000006101b561051b565b90610567565b905060006101cc8262278d006105b2565b90507f0000000000000000000000000000000000000000000000000000000000000000811015610201576000925050506103d8565b7f000000000000000000000000000000000000000000000000000000000000000081106102c457604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b15801561028e57600080fd5b505afa1580156102a2573d6000803e3d6000fd5b505050506040513d60208110156102b857600080fd5b505192506103d8915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d602081101561035d57600080fd5b505160008054919250906103729083906105f4565b905060006103aa7f00000000000000000000000000000000000000000000000000000000000000006103a4848761064e565b906105b2565b905060006103c36000548361056790919063ffffffff16565b90506103cf84826106a7565b96505050505050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061040961014e565b905060008111610457576040805162461bcd60e51b81526020600482015260146024820152734e6f20746f6b656e7320746f2072656c6561736560601b604482015290519081900360640190fd5b60005461046490826105f4565b6000556104bb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106bd565b6040805182815290517ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c5659181900360200190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b4290565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610714565b90505b92915050565b60006105a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506107ab565b6000828201838110156105a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261065d575060006105ac565b8282028284828161066a57fe5b04146105a95760405162461bcd60e51b8152600401808060200182810382526021815260200180610a4c6021913960400191505060405180910390fd5b60008183106106b657816105a9565b5090919050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261070f908490610810565b505050565b600081848411156107a35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610768578181015183820152602001610750565b50505050905090810190601f1680156107955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836107fa5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610768578181015183820152602001610750565b50600083858161080657fe5b0495945050505050565b6060610865826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108c19092919063ffffffff16565b80519091501561070f5780806020019051602081101561088457600080fd5b505161070f5760405162461bcd60e51b815260040180806020018281038252602a815260200180610a6d602a913960400191505060405180910390fd5b60606108d084846000856108d8565b949350505050565b60606108e385610a45565b610934576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106109735780518252601f199092019160209182019101610954565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109d5576040519150601f19603f3d011682016040523d82523d6000602084013e6109da565b606091505b509150915081156109ee5791506108d09050565b8051156109fe5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610768578181015183820152602001610750565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212203b3e8370e345374172efb9e3693b20807c318ecfcc569df94f28df8a94f2727a64736f6c634300060c0033"; -const isSuperArgs$u = (xs) => xs.length > 1; +const _bytecode$v = "0x61012060405234801561001157600080fd5b50604051610c8c380380610c8c833981810160405260a081101561003457600080fd5b508051602082015160408301516060840151608090940151929391929091906001600160a01b0384166100ae576040805162461bcd60e51b815260206004820152601b60248201527f42656e65666963696172792063616e6e6f7420626520656d7074790000000000604482015290519081900360640190fd5b80821115610103576040805162461bcd60e51b815260206004820152601e60248201527f436c6966662069732067726561746572207468616e206475726174696f6e0000604482015290519081900360640190fd5b6001600160601b0319606086811b821660a05285901b1660805261010081905260c08290528215610134578261013c565b61013c61014a565b60e0525061014e9350505050565b4290565b60805160601c60a05160601c60c05160e05161010051610acc6101c060003980610203528061037b52806103dd525080610152528061018e52806105215250806101d052806104f352508061024852806102c85280610474528061054552508061012c52806104965250610acc6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063928d89ae11610066578063928d89ae146100fb5780639613252114610103578063adb618321461010b578063e6fd48bc14610113578063fc0c546a1461011b5761009e565b806310786deb146100a357806338af3eed146100bd57806344b1231f146100e157806367097a4b146100e957806386d1a69f146100f1575b600080fd5b6100ab610123565b60408051918252519081900360200190f35b6100c561012a565b604080516001600160a01b039092168252519081900360200190f35b6100ab61014e565b6100ab6103db565b6100f96103ff565b005b6100ab6104f1565b6100ab610515565b6100ab61051b565b6100ab61051f565b6100c5610543565b62278d0081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000061017961051b565b1015610187575060006103d8565b60006101bb7f00000000000000000000000000000000000000000000000000000000000000006101b561051b565b90610567565b905060006101cc8262278d006105b2565b90507f0000000000000000000000000000000000000000000000000000000000000000811015610201576000925050506103d8565b7f000000000000000000000000000000000000000000000000000000000000000081106102c457604080516370a0823160e01b815230600482015290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b15801561028e57600080fd5b505afa1580156102a2573d6000803e3d6000fd5b505050506040513d60208110156102b857600080fd5b505192506103d8915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d602081101561035d57600080fd5b505160008054919250906103729083906105f4565b905060006103aa7f00000000000000000000000000000000000000000000000000000000000000006103a4848761064e565b906105b2565b905060006103c36000548361056790919063ffffffff16565b90506103cf84826106a7565b96505050505050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061040961014e565b905060008111610457576040805162461bcd60e51b81526020600482015260146024820152734e6f20746f6b656e7320746f2072656c6561736560601b604482015290519081900360640190fd5b60005461046490826105f4565b6000556104bb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106bd565b6040805182815290517ffb81f9b30d73d830c3544b34d827c08142579ee75710b490bab0b3995468c5659181900360200190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b4290565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610714565b90505b92915050565b60006105a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506107ab565b6000828201838110156105a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261065d575060006105ac565b8282028284828161066a57fe5b04146105a95760405162461bcd60e51b8152600401808060200182810382526021815260200180610a4c6021913960400191505060405180910390fd5b60008183106106b657816105a9565b5090919050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261070f908490610810565b505050565b600081848411156107a35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610768578181015183820152602001610750565b50505050905090810190601f1680156107955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836107fa5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610768578181015183820152602001610750565b50600083858161080657fe5b0495945050505050565b6060610865826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108c19092919063ffffffff16565b80519091501561070f5780806020019051602081101561088457600080fd5b505161070f5760405162461bcd60e51b815260040180806020018281038252602a815260200180610a6d602a913960400191505060405180910390fd5b60606108d084846000856108d8565b949350505050565b60606108e385610a45565b610934576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106109735780518252601f199092019160209182019101610954565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109d5576040519150601f19603f3d011682016040523d82523d6000602084013e6109da565b606091505b509150915081156109ee5791506108d09050565b8051156109fe5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610768578181015183820152602001610750565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212203b3e8370e345374172efb9e3693b20807c318ecfcc569df94f28df8a94f2727a64736f6c634300060c0033"; +const isSuperArgs$v = (xs) => xs.length > 1; class Vesting__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$u(args)) { + if (isSuperArgs$v(args)) { super(...args); } else { - super(_abi$P, _bytecode$u, args[0]); + super(_abi$S, _bytecode$v, args[0]); } } getDeployTransaction(_token, _beneficiary, _startTimestamp, _cliffInMonths, _durationInMonths, overrides) { @@ -111448,17 +113405,17 @@ class Vesting__factory extends ContractFactory { connect(runner) { return super.connect(runner); } - static bytecode = _bytecode$u; - static abi = _abi$P; + static bytecode = _bytecode$v; + static abi = _abi$S; static createInterface() { - return new Interface(_abi$P); + return new Interface(_abi$S); } static connect(address, runner) { - return new contract_Contract(address, _abi$P, runner); + return new contract_Contract(address, _abi$S, runner); } } -const _abi$O = [ +const _abi$R = [ { inputs: [ { @@ -111891,14 +113848,14 @@ const _abi$O = [ type: "function" } ]; -const _bytecode$t = "0x60e06040523480156200001157600080fd5b5060405162001d8d38038062001d8d833981016040819052620000349162000593565b60405180606001604052806026815260200162001d6760269139604051806040016040528060058152602001643b2a27a92760d91b81525081600390805190602001906200008492919062000497565b5080516200009a90600490602084019062000497565b50506005805460ff1916601217905550620000b584620001af565b60601b6001600160601b031916608052620000d083620001af565b60601b6001600160601b03191660c0526200010382620000ef620002fd565b6200030160201b6200098d1790919060201c565b60a05260005b8151811015620001a457620001558282815181106200012457fe5b6020026020010151600001518383815181106200013d57fe5b6020026020010151602001516200033260201b60201c565b6001600660008484815181106200016857fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000109565b505050505062000753565b600080620001bc62000415565b600114620001df57738595bfb0d940dfedc98943fa8a907091203f25ee620001f0565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906200022190869060040162000665565b60206040518083038186803b1580156200023a57600080fd5b505afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000574565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b8152600401620002a2919062000665565b60206040518083038186803b158015620002bb57600080fd5b505afa158015620002d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f6919062000574565b9392505050565b4290565b600082820183811015620002f65760405162461bcd60e51b815260040162000329906200066e565b60405180910390fd5b6001600160a01b0382166200035b5760405162461bcd60e51b81526004016200032990620006dc565b620003696000838362000419565b62000385816002546200030160201b6200098d1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620003b89183906200098d62000301821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200040990859062000665565b60405180910390a35050565b4690565b620004318383836200049260201b620009b21760201c565b6001600160a01b03821615806200044f57506001600160a01b038316155b806200047357506001600160a01b03831660009081526006602052604090205460ff165b620004925760405162461bcd60e51b81526004016200032990620006a5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004da57805160ff19168380011785556200050a565b828001600101855582156200050a579182015b828111156200050a578251825591602001919060010190620004ed565b50620005189291506200051c565b5090565b5b808211156200051857600081556001016200051d565b60006040828403121562000545578081fd5b62000551604062000713565b9050815162000560816200073a565b808252506020820151602082015292915050565b60006020828403121562000586578081fd5b8151620002f6816200073a565b60008060008060808587031215620005a9578283fd5b8451935060208086015193506040808701519350606087015160018060401b0380821115620005d6578485fd5b818901915089601f830112620005ea578485fd5b815181811115620005f9578586fd5b62000608858683020162000713565b8181528581019250838601858302850187018d101562000626578788fd5b8794505b8285101562000654576200063f8d8262000533565b8452600194909401939286019285016200062a565b50989b979a50959850505050505050565b90815260200190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6040518181016001600160401b03811182821017156200073257600080fd5b604052919050565b6001600160a01b03811681146200075057600080fd5b50565b60805160601c60a05160c05160601c6115c3620007a46000398061043152806107d35250806105c352806106ec52806107895250806106c8528061075d52806107f4528061089852506115c36000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638622a689116100ad578063adf898a411610071578063adf898a41461024b578063be040fb014610253578063c39ef8551461025d578063dd62ed3e14610265578063f9e54234146102785761012c565b80638622a6891461020d57806395d89b4114610215578063a457c2d71461021d578063a9059cbb14610230578063adb61832146102435761012c565b806339509351116100f457806339509351146101ac5780635aa6e675146101bf5780635c23bdf5146101d45780635d4545a0146101e757806370a08231146101fa5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461016f57806323b872dd14610184578063313ce56714610197575b600080fd5b610139610298565b604051610146919061116f565b60405180910390f35b61016261015d366004610fb5565b61032e565b604051610146919061115b565b61017761034b565b6040516101469190611166565b610162610192366004610f75565b610351565b61019f6103d8565b604051610146919061145e565b6101626101ba366004610fb5565b6103e1565b6101c761042f565b60405161014691906110e1565b6101c76101e2366004611095565b610453565b6101626101f5366004610f05565b610591565b610177610208366004610f05565b6105a6565b6101776105c1565b6101396105e5565b61016261022b366004610fb5565b610646565b61016261023e366004610fb5565b6106ae565b6101776106c2565b6101c76106c6565b61025b6106ea565b005b61025b610787565b610177610273366004610f3d565b6108c1565b61028b610286366004610fe0565b6108ec565b604051610146919061110e565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b600061034261033b6109b7565b84846109bb565b50600192915050565b60025490565b600061035e848484610a6f565b6103ce8461036a6109b7565b6103c985604051806060016040528060288152602001611541602891396001600160a01b038a166000908152600160205260408120906103a86109b7565b6001600160a01b031681526020810191909152604001600020549190610b84565b6109bb565b5060019392505050565b60055460ff1690565b60006103426103ee6109b7565b846103c985600160006103ff6109b7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061098d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061045e610bb0565b60011461047f57738595bfb0d940dfedc98943fa8a907091203f25ee610490565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906104bf908690600401611166565b60206040518083038186803b1580156104d757600080fd5b505afa1580156104eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050f9190610f21565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b815260040161053a9190611166565b60206040518083038186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a9190610f21565b9392505050565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103245780601f106102f957610100808354040283529160200191610324565b60006103426106536109b7565b846103c985604051806060016040528060258152602001611569602591396001600061067d6109b7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b84565b60006103426106bb6109b7565b8484610a6f565b4290565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000006107136106c2565b106107395760405162461bcd60e51b81526004016107309061125e565b60405180910390fd5b6000610744336105a6565b90506107503382610bb4565b6107846001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610c96565b50565b7f00000000000000000000000000000000000000000000000000000000000000006107b06106c2565b10156107ce5760405162461bcd60e51b815260040161073090611295565b6108bf7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161083e91906110e1565b60206040518083038186803b15801561085657600080fd5b505afa15801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e91906110ad565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190610c96565b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060815167ffffffffffffffff8111801561090657600080fd5b50604051908082528060200260200182016040528015610930578160200160208202803683370190505b50905060005b82518110156109875761095b83828151811061094e57fe5b6020026020010151610453565b82828151811061096757fe5b6001600160a01b0390921660209283029190910190910152600101610936565b50919050565b60008282018381101561058a5760405162461bcd60e51b815260040161073090611227565b505050565b3390565b6001600160a01b0383166109e15760405162461bcd60e51b815260040161073090611399565b6001600160a01b038216610a075760405162461bcd60e51b8152600401610730906111e5565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a62908590611166565b60405180910390a3505050565b6001600160a01b038316610a955760405162461bcd60e51b815260040161073090611354565b6001600160a01b038216610abb5760405162461bcd60e51b8152600401610730906111a2565b610ac6838383610cec565b610b038160405180606001604052806026815260200161151b602691396001600160a01b0386166000908152602081905260409020549190610b84565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610b32908261098d565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a62908590611166565b60008184841115610ba85760405162461bcd60e51b8152600401610730919061116f565b505050900390565b4690565b6001600160a01b038216610bda5760405162461bcd60e51b815260040161073090611313565b610be682600083610cec565b610c23816040518060600160405280602281526020016114f9602291396001600160a01b0385166000908152602081905260409020549190610b84565b6001600160a01b038316600090815260208190526040902055600254610c499082610d53565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c8a908590611166565b60405180910390a35050565b6109b28363a9059cbb60e01b8484604051602401610cb59291906110f5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610d95565b610cf78383836109b2565b6001600160a01b0382161580610d1457506001600160a01b038316155b80610d3757506001600160a01b03831660009081526006602052604090205460ff165b6109b25760405162461bcd60e51b8152600401610730906112dc565b600061058a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b84565b6060610dea826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e249092919063ffffffff16565b8051909150156109b25780806020019051810190610e089190611075565b6109b25760405162461bcd60e51b815260040161073090611414565b6060610e338484600085610e3b565b949350505050565b6060610e4685610eff565b610e625760405162461bcd60e51b8152600401610730906113dd565b60006060866001600160a01b03168587604051610e7f91906110c5565b60006040518083038185875af1925050503d8060008114610ebc576040519150601f19603f3d011682016040523d82523d6000602084013e610ec1565b606091505b50915091508115610ed5579150610e339050565b805115610ee55780518082602001fd5b8360405162461bcd60e51b8152600401610730919061116f565b3b151590565b600060208284031215610f16578081fd5b813561058a816114e3565b600060208284031215610f32578081fd5b815161058a816114e3565b60008060408385031215610f4f578081fd5b8235610f5a816114e3565b91506020830135610f6a816114e3565b809150509250929050565b600080600060608486031215610f89578081fd5b8335610f94816114e3565b92506020840135610fa4816114e3565b929592945050506040919091013590565b60008060408385031215610fc7578182fd5b8235610fd2816114e3565b946020939093013593505050565b60006020808385031215610ff2578182fd5b823567ffffffffffffffff811115611008578283fd5b8301601f81018513611018578283fd5b803561102b61102682611493565b61146c565b8181528381019083850185840285018601891015611047578687fd5b8694505b8385101561106957803583526001949094019391850191850161104b565b50979650505050505050565b600060208284031215611086578081fd5b8151801515811461058a578182fd5b6000602082840312156110a6578081fd5b5035919050565b6000602082840312156110be578081fd5b5051919050565b600082516110d78184602087016114b3565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561114f5783516001600160a01b03168352928401929184019160010161112a565b50909695505050505050565b901515815260200190565b90815260200190565b600060208252825180602084015261118e8160408501602087016114b3565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f41697264726f702072656465656d20706572696f642068617320656e64656400604082015260600190565b60208082526027908201527f41697264726f702072656465656d20706572696f6420686173206e6f7420656e604082015266191959081e595d60ca1b606082015260800190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561148b57600080fd5b604052919050565b600067ffffffffffffffff8211156114a9578081fd5b5060209081020190565b60005b838110156114ce5781810151838201526020016114b6565b838111156114dd576000848401525b50505050565b6001600160a01b038116811461078457600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b2d6f14167bc062b61418b8fca6b7946d243420e3df874c9632acb30079c69b64736f6c634300060c0033546f726e61646f4361736820766f756368657220666f72206561726c792061646f7074657273"; -const isSuperArgs$t = (xs) => xs.length > 1; +const _bytecode$u = "0x60e06040523480156200001157600080fd5b5060405162001d8d38038062001d8d833981016040819052620000349162000593565b60405180606001604052806026815260200162001d6760269139604051806040016040528060058152602001643b2a27a92760d91b81525081600390805190602001906200008492919062000497565b5080516200009a90600490602084019062000497565b50506005805460ff1916601217905550620000b584620001af565b60601b6001600160601b031916608052620000d083620001af565b60601b6001600160601b03191660c0526200010382620000ef620002fd565b6200030160201b6200098d1790919060201c565b60a05260005b8151811015620001a457620001558282815181106200012457fe5b6020026020010151600001518383815181106200013d57fe5b6020026020010151602001516200033260201b60201c565b6001600660008484815181106200016857fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000109565b505050505062000753565b600080620001bc62000415565b600114620001df57738595bfb0d940dfedc98943fa8a907091203f25ee620001f0565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906200022190869060040162000665565b60206040518083038186803b1580156200023a57600080fd5b505afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000574565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b8152600401620002a2919062000665565b60206040518083038186803b158015620002bb57600080fd5b505afa158015620002d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f6919062000574565b9392505050565b4290565b600082820183811015620002f65760405162461bcd60e51b815260040162000329906200066e565b60405180910390fd5b6001600160a01b0382166200035b5760405162461bcd60e51b81526004016200032990620006dc565b620003696000838362000419565b62000385816002546200030160201b6200098d1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620003b89183906200098d62000301821b17901c565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200040990859062000665565b60405180910390a35050565b4690565b620004318383836200049260201b620009b21760201c565b6001600160a01b03821615806200044f57506001600160a01b038316155b806200047357506001600160a01b03831660009081526006602052604090205460ff165b620004925760405162461bcd60e51b81526004016200032990620006a5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004da57805160ff19168380011785556200050a565b828001600101855582156200050a579182015b828111156200050a578251825591602001919060010190620004ed565b50620005189291506200051c565b5090565b5b808211156200051857600081556001016200051d565b60006040828403121562000545578081fd5b62000551604062000713565b9050815162000560816200073a565b808252506020820151602082015292915050565b60006020828403121562000586578081fd5b8151620002f6816200073a565b60008060008060808587031215620005a9578283fd5b8451935060208086015193506040808701519350606087015160018060401b0380821115620005d6578485fd5b818901915089601f830112620005ea578485fd5b815181811115620005f9578586fd5b62000608858683020162000713565b8181528581019250838601858302850187018d101562000626578788fd5b8794505b8285101562000654576200063f8d8262000533565b8452600194909401939286019285016200062a565b50989b979a50959850505050505050565b90815260200190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6040518181016001600160401b03811182821017156200073257600080fd5b604052919050565b6001600160a01b03811681146200075057600080fd5b50565b60805160601c60a05160c05160601c6115c3620007a46000398061043152806107d35250806105c352806106ec52806107895250806106c8528061075d52806107f4528061089852506115c36000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638622a689116100ad578063adf898a411610071578063adf898a41461024b578063be040fb014610253578063c39ef8551461025d578063dd62ed3e14610265578063f9e54234146102785761012c565b80638622a6891461020d57806395d89b4114610215578063a457c2d71461021d578063a9059cbb14610230578063adb61832146102435761012c565b806339509351116100f457806339509351146101ac5780635aa6e675146101bf5780635c23bdf5146101d45780635d4545a0146101e757806370a08231146101fa5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461016f57806323b872dd14610184578063313ce56714610197575b600080fd5b610139610298565b604051610146919061116f565b60405180910390f35b61016261015d366004610fb5565b61032e565b604051610146919061115b565b61017761034b565b6040516101469190611166565b610162610192366004610f75565b610351565b61019f6103d8565b604051610146919061145e565b6101626101ba366004610fb5565b6103e1565b6101c761042f565b60405161014691906110e1565b6101c76101e2366004611095565b610453565b6101626101f5366004610f05565b610591565b610177610208366004610f05565b6105a6565b6101776105c1565b6101396105e5565b61016261022b366004610fb5565b610646565b61016261023e366004610fb5565b6106ae565b6101776106c2565b6101c76106c6565b61025b6106ea565b005b61025b610787565b610177610273366004610f3d565b6108c1565b61028b610286366004610fe0565b6108ec565b604051610146919061110e565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b600061034261033b6109b7565b84846109bb565b50600192915050565b60025490565b600061035e848484610a6f565b6103ce8461036a6109b7565b6103c985604051806060016040528060288152602001611541602891396001600160a01b038a166000908152600160205260408120906103a86109b7565b6001600160a01b031681526020810191909152604001600020549190610b84565b6109bb565b5060019392505050565b60055460ff1690565b60006103426103ee6109b7565b846103c985600160006103ff6109b7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061098d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061045e610bb0565b60011461047f57738595bfb0d940dfedc98943fa8a907091203f25ee610490565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b604051630178b8bf60e01b81529091506001600160a01b03821690630178b8bf906104bf908690600401611166565b60206040518083038186803b1580156104d757600080fd5b505afa1580156104eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050f9190610f21565b6001600160a01b0316633b3b57de846040518263ffffffff1660e01b815260040161053a9190611166565b60206040518083038186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a9190610f21565b9392505050565b60066020526000908152604090205460ff1681565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103245780601f106102f957610100808354040283529160200191610324565b60006103426106536109b7565b846103c985604051806060016040528060258152602001611569602591396001600061067d6109b7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b84565b60006103426106bb6109b7565b8484610a6f565b4290565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000006107136106c2565b106107395760405162461bcd60e51b81526004016107309061125e565b60405180910390fd5b6000610744336105a6565b90506107503382610bb4565b6107846001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610c96565b50565b7f00000000000000000000000000000000000000000000000000000000000000006107b06106c2565b10156107ce5760405162461bcd60e51b815260040161073090611295565b6108bf7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161083e91906110e1565b60206040518083038186803b15801561085657600080fd5b505afa15801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e91906110ad565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190610c96565b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060815167ffffffffffffffff8111801561090657600080fd5b50604051908082528060200260200182016040528015610930578160200160208202803683370190505b50905060005b82518110156109875761095b83828151811061094e57fe5b6020026020010151610453565b82828151811061096757fe5b6001600160a01b0390921660209283029190910190910152600101610936565b50919050565b60008282018381101561058a5760405162461bcd60e51b815260040161073090611227565b505050565b3390565b6001600160a01b0383166109e15760405162461bcd60e51b815260040161073090611399565b6001600160a01b038216610a075760405162461bcd60e51b8152600401610730906111e5565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a62908590611166565b60405180910390a3505050565b6001600160a01b038316610a955760405162461bcd60e51b815260040161073090611354565b6001600160a01b038216610abb5760405162461bcd60e51b8152600401610730906111a2565b610ac6838383610cec565b610b038160405180606001604052806026815260200161151b602691396001600160a01b0386166000908152602081905260409020549190610b84565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610b32908261098d565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a62908590611166565b60008184841115610ba85760405162461bcd60e51b8152600401610730919061116f565b505050900390565b4690565b6001600160a01b038216610bda5760405162461bcd60e51b815260040161073090611313565b610be682600083610cec565b610c23816040518060600160405280602281526020016114f9602291396001600160a01b0385166000908152602081905260409020549190610b84565b6001600160a01b038316600090815260208190526040902055600254610c499082610d53565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c8a908590611166565b60405180910390a35050565b6109b28363a9059cbb60e01b8484604051602401610cb59291906110f5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610d95565b610cf78383836109b2565b6001600160a01b0382161580610d1457506001600160a01b038316155b80610d3757506001600160a01b03831660009081526006602052604090205460ff165b6109b25760405162461bcd60e51b8152600401610730906112dc565b600061058a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b84565b6060610dea826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e249092919063ffffffff16565b8051909150156109b25780806020019051810190610e089190611075565b6109b25760405162461bcd60e51b815260040161073090611414565b6060610e338484600085610e3b565b949350505050565b6060610e4685610eff565b610e625760405162461bcd60e51b8152600401610730906113dd565b60006060866001600160a01b03168587604051610e7f91906110c5565b60006040518083038185875af1925050503d8060008114610ebc576040519150601f19603f3d011682016040523d82523d6000602084013e610ec1565b606091505b50915091508115610ed5579150610e339050565b805115610ee55780518082602001fd5b8360405162461bcd60e51b8152600401610730919061116f565b3b151590565b600060208284031215610f16578081fd5b813561058a816114e3565b600060208284031215610f32578081fd5b815161058a816114e3565b60008060408385031215610f4f578081fd5b8235610f5a816114e3565b91506020830135610f6a816114e3565b809150509250929050565b600080600060608486031215610f89578081fd5b8335610f94816114e3565b92506020840135610fa4816114e3565b929592945050506040919091013590565b60008060408385031215610fc7578182fd5b8235610fd2816114e3565b946020939093013593505050565b60006020808385031215610ff2578182fd5b823567ffffffffffffffff811115611008578283fd5b8301601f81018513611018578283fd5b803561102b61102682611493565b61146c565b8181528381019083850185840285018601891015611047578687fd5b8694505b8385101561106957803583526001949094019391850191850161104b565b50979650505050505050565b600060208284031215611086578081fd5b8151801515811461058a578182fd5b6000602082840312156110a6578081fd5b5035919050565b6000602082840312156110be578081fd5b5051919050565b600082516110d78184602087016114b3565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561114f5783516001600160a01b03168352928401929184019160010161112a565b50909695505050505050565b901515815260200190565b90815260200190565b600060208252825180602084015261118e8160408501602087016114b3565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f41697264726f702072656465656d20706572696f642068617320656e64656400604082015260600190565b60208082526027908201527f41697264726f702072656465656d20706572696f6420686173206e6f7420656e604082015266191959081e595d60ca1b606082015260800190565b6020808252601e908201527f45524332303a207472616e73666572206973206e6f7420616c6c6f7765640000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561148b57600080fd5b604052919050565b600067ffffffffffffffff8211156114a9578081fd5b5060209081020190565b60005b838110156114ce5781810151838201526020016114b6565b838111156114dd576000848401525b50505050565b6001600160a01b038116811461078457600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b2d6f14167bc062b61418b8fca6b7946d243420e3df874c9632acb30079c69b64736f6c634300060c0033546f726e61646f4361736820766f756368657220666f72206561726c792061646f7074657273"; +const isSuperArgs$u = (xs) => xs.length > 1; class Voucher__factory extends ContractFactory { constructor(...args) { - if (isSuperArgs$t(args)) { + if (isSuperArgs$u(args)) { super(...args); } else { - super(_abi$O, _bytecode$t, args[0]); + super(_abi$R, _bytecode$u, args[0]); } } getDeployTransaction(_torn, _governance, _duration, _airdrops, overrides) { @@ -111922,6 +113879,331 @@ class Voucher__factory extends ContractFactory { connect(runner) { return super.connect(runner); } + static bytecode = _bytecode$u; + static abi = _abi$R; + static createInterface() { + return new Interface(_abi$R); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$R, runner); + } +} + +var index$t = /*#__PURE__*/Object.freeze({ + __proto__: null, + Airdrop__factory: Airdrop__factory, + ERC20Permit__factory: ERC20Permit__factory, + TORN__factory: TORN__factory, + Vesting__factory: Vesting__factory, + Voucher__factory: Voucher__factory, + ensSol: index$v, + mocks: index$u +}); + +const _abi$Q = [ + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "decimal", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "latestAnswer", + outputs: [ + { + internalType: "int256", + name: "answer", + type: "int256" + } + ], + stateMutability: "view", + type: "function" + } +]; +class IChainlinkOracle__factory { + static abi = _abi$Q; + static createInterface() { + return new Interface(_abi$Q); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$Q, runner); + } +} + +const _abi$P = [ + { + inputs: [ + { + internalType: "address", + name: "srcToken", + type: "address" + }, + { + internalType: "bool", + name: "useSrcWrappers", + type: "bool" + } + ], + name: "getRateToEth", + outputs: [ + { + internalType: "uint256", + name: "weightedRate", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + } +]; +class IOffchainOracle__factory { + static abi = _abi$P; + static createInterface() { + return new Interface(_abi$P); + } + static connect(address, runner) { + return new contract_Contract(address, _abi$P, runner); + } +} + +const _abi$O = [ + { + inputs: [ + { + internalType: "address", + name: "_stablecoin", + type: "address" + }, + { + internalType: "address", + name: "_stablecoinOracle", + type: "address" + } + ], + stateMutability: "nonpayable", + type: "constructor" + }, + { + inputs: [], + name: "NotOwner", + type: "error" + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + name: "arbitraryPrice", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + name: "chainlinkOracles", + outputs: [ + { + internalType: "contract IChainlinkOracle", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address" + }, + { + internalType: "uint256", + name: "price", + type: "uint256" + } + ], + name: "changeArbitraryPrice", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address" + } + ], + name: "changeOwner", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address" + } + ], + name: "getOracleUSD", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "srcToken", + type: "address" + }, + { + internalType: "bool", + name: "useSrcWrappers", + type: "bool" + } + ], + name: "getRateToEth", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + name: "isStablecoin", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address" + }, + { + internalType: "address", + name: "oracle", + type: "address" + }, + { + internalType: "bool", + name: "_isStablecoin", + type: "bool" + } + ], + name: "setOracle", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "stablecoin", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + } +]; +const _bytecode$t = "0x6080604052348015600f57600080fd5b50604051610905380380610905833981016040819052602c9160a7565b600080546001600160a01b039384166001600160a01b0319918216811783558252600260209081526040808420805460ff1916600190811790915590915290912080549290931691811691909117909155600480549091163317905560d5565b80516001600160a01b038116811460a257600080fd5b919050565b6000806040838503121560b957600080fd5b60c083608c565b915060cc60208401608c565b90509250929050565b610821806100e46000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d16c130711610066578063d16c130714610165578063dd01555214610178578063dd3a825a1461018b578063df60d05a1461019e578063e9cbd822146101be57600080fd5b80631a650cc7146100a35780636a75aa66146100db5780637de4fd101461011c5780638da5cb5b1461013d578063a6f9dae114610150575b600080fd5b6100c66100b1366004610566565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101046100e9366004610566565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100d2565b61012f61012a366004610598565b6101d1565b6040519081526020016100d2565b600454610104906001600160a01b031681565b61016361015e366004610566565b610320565b005b6101636101733660046105cb565b61036d565b61012f610186366004610566565b6103f1565b61016361019936600461060e565b610503565b61012f6101ac366004610566565b60036020526000908152604090205481565b600054610104906001600160a01b031681565b6001600160a01b0382811660009081526001602052604081205490911661021157506001600160a01b03821660009081526003602052604090205461031a565b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610251573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102759190610638565b6001600160a01b03851660009081526002602052604090205490915060ff16156102ca576102a4816012610671565b6102af90600a610771565b6102b8856103f1565b6102c29190610780565b91505061031a565b600080546102e0906001600160a01b03166103f1565b90506102eb856103f1565b6102f6836024610671565b61030190600a610771565b61030b9083610780565b6103159190610797565b925050505b92915050565b6004546001600160a01b0316331461034b576040516330cd747160e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b03163314610398576040516330cd747160e01b815260040160405180910390fd5b80156103c2576001600160a01b0383166000908152600260205260409020805460ff191660011790555b506001600160a01b03918216600090815260016020526040902080546001600160a01b03191691909216179055565b6001600160a01b03808216600090815260016020908152604080832054815163313ce56760e01b815291519394169284928392859263313ce567926004808401939192918290030181865afa15801561044e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104729190610638565b836001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d491906107b9565b9092509050806104e58360126107d2565b6104f090600a610771565b6104fa9190610797565b95945050505050565b6004546001600160a01b0316331461052e576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b03909116600090815260036020526040902055565b80356001600160a01b038116811461056157600080fd5b919050565b60006020828403121561057857600080fd5b6105818261054a565b9392505050565b8035801515811461056157600080fd5b600080604083850312156105ab57600080fd5b6105b48361054a565b91506105c260208401610588565b90509250929050565b6000806000606084860312156105e057600080fd5b6105e98461054a565b92506105f76020850161054a565b915061060560408501610588565b90509250925092565b6000806040838503121561062157600080fd5b61062a8361054a565b946020939093013593505050565b60006020828403121561064a57600080fd5b815160ff8116811461058157600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff828116828216039081111561031a5761031a61065b565b6001815b60018411156106c5578085048111156106a9576106a961065b565b60018416156106b757908102905b60019390931c92800261068e565b935093915050565b6000826106dc5750600161031a565b816106e95750600061031a565b81600181146106ff576002811461070957610725565b600191505061031a565b60ff84111561071a5761071a61065b565b50506001821b61031a565b5060208310610133831016604e8410600b8410161715610748575081810a61031a565b610755600019848461068a565b80600019048211156107695761076961065b565b029392505050565b600061058160ff8416836106cd565b808202811582820484141761031a5761031a61065b565b6000826107b457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156107cb57600080fd5b5051919050565b60ff818116838216019081111561031a5761031a61065b56fea264697066735822122014c0c48f05ab025151413c0ef2c884b3844e6a66084576e34b8337df8af8cf4564736f6c634300081c0033"; +const isSuperArgs$t = (xs) => xs.length > 1; +class TestnetOracle__factory extends ContractFactory { + constructor(...args) { + if (isSuperArgs$t(args)) { + super(...args); + } else { + super(_abi$O, _bytecode$t, args[0]); + } + } + getDeployTransaction(_stablecoin, _stablecoinOracle, overrides) { + return super.getDeployTransaction( + _stablecoin, + _stablecoinOracle, + overrides || {} + ); + } + deploy(_stablecoin, _stablecoinOracle, overrides) { + return super.deploy( + _stablecoin, + _stablecoinOracle, + overrides || {} + ); + } + connect(runner) { + return super.connect(runner); + } static bytecode = _bytecode$t; static abi = _abi$O; static createInterface() { @@ -111934,13 +114216,9 @@ class Voucher__factory extends ContractFactory { var index$s = /*#__PURE__*/Object.freeze({ __proto__: null, - Airdrop__factory: Airdrop__factory, - ERC20Permit__factory: ERC20Permit__factory, - TORN__factory: TORN__factory, - Vesting__factory: Vesting__factory, - Voucher__factory: Voucher__factory, - ensSol: index$u, - mocks: index$t + IChainlinkOracle__factory: IChainlinkOracle__factory, + IOffchainOracle__factory: IOffchainOracle__factory, + TestnetOracle__factory: TestnetOracle__factory }); const _abi$N = [ @@ -112820,7 +115098,8 @@ var index$r = /*#__PURE__*/Object.freeze({ __proto__: null, TestnetAdminProxy__factory: TestnetAdminProxy__factory, TestnetFeeManager__factory: TestnetFeeManager__factory, - TestnetGovernanceProxy__factory: TestnetGovernanceProxy__factory + TestnetGovernanceProxy__factory: TestnetGovernanceProxy__factory, + testnetOracleSol: index$s }); const _abi$K = [ @@ -125584,14 +127863,14 @@ var index$2 = /*#__PURE__*/Object.freeze({ SingletonFactory__factory: SingletonFactory__factory, TornadoRouter__factory: TornadoRouter__factory, TornadoVault__factory: TornadoVault__factory, - aggregator: index$y, - deployerSol: index$x, - instanceRegistrySol: index$w, + aggregator: index$z, + deployerSol: index$y, + instanceRegistrySol: index$x, interfaces: index$k, libraries: index$i, - relayerRegistrySol: index$v, + relayerRegistrySol: index$w, testnet: index$r, - torn: index$s, + torn: index$t, tornadoStakingRewardsSol: index$q, uniswap: index$l, v1: index$d, @@ -125603,14 +127882,14 @@ var index$2 = /*#__PURE__*/Object.freeze({ var index$1 = /*#__PURE__*/Object.freeze({ __proto__: null, - classic: index$A, + classic: index$B, governance: index$2 }); var index = /*#__PURE__*/Object.freeze({ __proto__: null, contracts: index$1, - openzeppelin: index$H + openzeppelin: index$I }); @@ -125725,7 +128004,7 @@ function toUint256(value) { * * @_docloc: api/crypto:Signing */ -class Signature { +class signature_Signature { #r; #s; #v; @@ -125781,7 +128060,7 @@ class Signature { if (v == null) { return null; } - return Signature.getChainId(v); + return signature_Signature.getChainId(v); } /** * The ``yParity`` for the signature. @@ -125832,7 +128111,7 @@ class Signature { * Returns a new identical [[Signature]]. */ clone() { - const clone = new Signature(signature_guard, this.r, this.s, this.v); + const clone = new signature_Signature(signature_guard, this.r, this.s, this.v); if (this.networkV) { clone.#networkV = this.networkV; } @@ -125933,7 +128212,7 @@ class Signature { } ; if (sig == null) { - return new Signature(signature_guard, ZeroHash, ZeroHash, 27); + return new signature_Signature(signature_guard, ZeroHash, ZeroHash, 27); } if (typeof (sig) === "string") { const bytes = data_getBytes(sig, "signature"); @@ -125942,18 +128221,18 @@ class Signature { const s = bytes.slice(32, 64); const v = (s[0] & 0x80) ? 28 : 27; s[0] &= 0x7f; - return new Signature(signature_guard, r, hexlify(s), v); + return new signature_Signature(signature_guard, r, hexlify(s), v); } if (bytes.length === 65) { const r = hexlify(bytes.slice(0, 32)); const s = bytes.slice(32, 64); assertError((s[0] & 0x80) === 0, "non-canonical s"); - const v = Signature.getNormalizedV(bytes[64]); - return new Signature(signature_guard, r, hexlify(s), v); + const v = signature_Signature.getNormalizedV(bytes[64]); + return new signature_Signature(signature_guard, r, hexlify(s), v); } assertError(false, "invalid raw signature length"); } - if (sig instanceof Signature) { + if (sig instanceof signature_Signature) { return sig.clone(); } // Get r @@ -125980,7 +128259,7 @@ class Signature { const v = getBigInt(_v); return { networkV: ((v >= BN_35) ? v : undefined), - v: Signature.getNormalizedV(v) + v: signature_Signature.getNormalizedV(v) }; } if (yParityAndS != null) { @@ -125996,7 +128275,7 @@ class Signature { } assertError(false, "missing v"); })(sig.v, sig.yParityAndS, sig.yParity); - const result = new Signature(signature_guard, r, s, v); + const result = new signature_Signature(signature_guard, r, s, v); if (networkV) { result.#networkV = networkV; } @@ -128547,7 +130826,7 @@ class SigningKey { const sig = secp256k1.sign(getBytesCopy(digest), getBytesCopy(this.#privateKey), { lowS: true }); - return Signature.from({ + return signature_Signature.from({ r: toBeHex(sig.r, 32), s: toBeHex(sig.s, 32), v: (sig.recovery ? 0x1c : 0x1b) @@ -128641,7 +130920,7 @@ class SigningKey { */ static recoverPublicKey(digest, signature) { errors_assertArgument(dataLength(digest) === 32, "invalid digest length", "digest", digest); - const sig = Signature.from(signature); + const sig = signature_Signature.from(signature); let secpSig = secp256k1.Signature.fromCompact(getBytesCopy(data_concat([sig.r, sig.s]))); secpSig = secpSig.addRecoveryBit(sig.yParity); const pubKey = secpSig.recoverPublicKey(getBytesCopy(digest)); @@ -128870,7 +131149,7 @@ function _parseLegacy(data) { tx.chainId = chainId; // Signed Legacy Transaction errors_assertArgument(chainId !== transaction_BN_0 || (v === transaction_BN_27 || v === transaction_BN_28), "non-canonical legacy v", "v", fields[6]); - tx.signature = Signature.from({ + tx.signature = signature_Signature.from({ r: data_zeroPadValue(fields[7], 32), s: data_zeroPadValue(fields[8], 32), v @@ -128919,7 +131198,7 @@ function _serializeLegacy(tx, sig) { // Compute the EIP-155 v let v = BigInt(27 + sig.yParity); if (chainId !== transaction_BN_0) { - v = Signature.getChainIdV(chainId, sig.v); + v = signature_Signature.getChainIdV(chainId, sig.v); } else if (BigInt(sig.v) !== v) { errors_assertArgument(false, "tx.chainId/sig.v mismatch", "sig", sig); @@ -128943,7 +131222,7 @@ function _parseEipSignature(tx, fields) { } const r = data_zeroPadValue(fields[1], 32); const s = data_zeroPadValue(fields[2], 32); - const signature = Signature.from({ r, s, yParity }); + const signature = signature_Signature.from({ r, s, yParity }); tx.signature = signature; } function _parseEip1559(data) { @@ -129293,7 +131572,7 @@ class Transaction { */ get signature() { return this.#sig || null; } set signature(value) { - this.#sig = (value == null) ? null : Signature.from(value); + this.#sig = (value == null) ? null : signature_Signature.from(value); } /** * The access list. @@ -129724,7 +132003,7 @@ class Transaction { result.chainId = tx.chainId; } if (tx.signature != null) { - result.signature = Signature.from(tx.signature); + result.signature = signature_Signature.from(tx.signature); } if (tx.accessList != null) { result.accessList = tx.accessList; @@ -130606,7 +132885,7 @@ const WeiPerEther = BigInt("1000000000000000000"); * * (**i.e.** ``0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn``) */ -const MaxUint256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); +const numbers_MaxUint256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); /** * A constant for the minimum value for an ``int256``. * @@ -131787,7 +134066,7 @@ function splitArray(type) { * typed data hash, primary types, or sub-components, but generally the * higher level [[Signer-signTypedData]] is more useful. */ -class TypedDataEncoder { +class typed_data_TypedDataEncoder { /** * The primary type for the structured [[types]]. * @@ -132014,19 +134293,19 @@ class TypedDataEncoder { * Create a new **TypedDataEncoder** for %%types%%. */ static from(types) { - return new TypedDataEncoder(types); + return new typed_data_TypedDataEncoder(types); } /** * Return the primary type for %%types%%. */ static getPrimaryType(types) { - return TypedDataEncoder.from(types).primaryType; + return typed_data_TypedDataEncoder.from(types).primaryType; } /** * Return the hashed struct for %%value%% using %%types%% and %%name%%. */ static hashStruct(name, types, value) { - return TypedDataEncoder.from(types).hashStruct(name, value); + return typed_data_TypedDataEncoder.from(types).hashStruct(name, value); } /** * Return the domain hash for %%domain%%. @@ -132044,7 +134323,7 @@ class TypedDataEncoder { domainFields.sort((a, b) => { return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name); }); - return TypedDataEncoder.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain); + return typed_data_TypedDataEncoder.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain); } /** * Return the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%. @@ -132052,15 +134331,15 @@ class TypedDataEncoder { static encode(domain, types, value) { return data_concat([ "0x1901", - TypedDataEncoder.hashDomain(domain), - TypedDataEncoder.from(types).hash(value) + typed_data_TypedDataEncoder.hashDomain(domain), + typed_data_TypedDataEncoder.from(types).hash(value) ]); } /** * Return the hash of the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%. */ static hash(domain, types, value) { - return keccak_keccak256(TypedDataEncoder.encode(domain, types, value)); + return keccak_keccak256(typed_data_TypedDataEncoder.encode(domain, types, value)); } // Replaces all address types with ENS names with their looked up address /** @@ -132083,7 +134362,7 @@ class TypedDataEncoder { ensCache[domain.verifyingContract] = "0x"; } // We are going to use the encoder to visit all the base values - const encoder = TypedDataEncoder.from(types); + const encoder = typed_data_TypedDataEncoder.from(types); // Get a list of all the addresses encoder.visit(value, (type, value) => { if (type === "address" && !data_isHexString(value, 20)) { @@ -132114,7 +134393,7 @@ class TypedDataEncoder { */ static getPayload(domain, types, value) { // Validate the domain fields - TypedDataEncoder.hashDomain(domain); + typed_data_TypedDataEncoder.hashDomain(domain); // Derive the EIP712Domain Struct reference type const domainValues = {}; const domainTypes = []; @@ -132126,7 +134405,7 @@ class TypedDataEncoder { domainValues[name] = domainChecks[name](value); domainTypes.push({ name, type: domainFieldTypes[name] }); }); - const encoder = TypedDataEncoder.from(types); + const encoder = typed_data_TypedDataEncoder.from(types); // Get the normalized types types = encoder.types; const typesWithDomain = Object.assign({}, types); @@ -132165,7 +134444,7 @@ class TypedDataEncoder { * Compute the address used to sign the typed data for the %%signature%%. */ function verifyTypedData(domain, types, value, signature) { - return recoverAddress(TypedDataEncoder.hash(domain, types, value), signature); + return recoverAddress(typed_data_TypedDataEncoder.hash(domain, types, value), signature); } //# sourceMappingURL=typed-data.js.map ;// ./node_modules/@adraffy/ens-normalize/dist/index.mjs @@ -134279,10 +136558,10 @@ function formatTransactionResponse(value) { } // Compute the signature if (value.signature) { - result.signature = Signature.from(value.signature); + result.signature = signature_Signature.from(value.signature); } else { - result.signature = Signature.from(value); + result.signature = signature_Signature.from(value); } // Some backends omit ChainId on legacy transactions, but we can compute it if (result.chainId == null) { @@ -136984,14 +139263,14 @@ class JsonRpcSigner extends AbstractSigner { async signTypedData(domain, types, _value) { const value = deepCopy(_value); // Populate any ENS names (in-place) - const populated = await TypedDataEncoder.resolveNames(domain, types, value, async (value) => { + const populated = await typed_data_TypedDataEncoder.resolveNames(domain, types, value, async (value) => { const address = await resolveAddress(value); errors_assertArgument(address != null, "TypedData does not support null address", "value", value); return address; }); return await this.provider.send("eth_signTypedData_v4", [ this.address.toLowerCase(), - JSON.stringify(TypedDataEncoder.getPayload(populated.domain, types, populated.value)) + JSON.stringify(typed_data_TypedDataEncoder.getPayload(populated.domain, types, populated.value)) ]); } async unlock(password) { @@ -137887,7 +140166,7 @@ class BaseWallet extends AbstractSigner { } async signTypedData(domain, types, value) { // Populate any ENS names - const populated = await TypedDataEncoder.resolveNames(domain, types, value, async (name) => { + const populated = await typed_data_TypedDataEncoder.resolveNames(domain, types, value, async (name) => { // @TODO: this should use resolveName; addresses don't // need a provider errors_assert(this.provider != null, "cannot resolve ENS names without a provider", "UNSUPPORTED_OPERATION", { @@ -137900,7 +140179,7 @@ class BaseWallet extends AbstractSigner { }); return address; }); - return this.signingKey.sign(TypedDataEncoder.hash(populated.domain, types, populated.value)).serialized; + return this.signingKey.sign(typed_data_TypedDataEncoder.hash(populated.domain, types, populated.value)).serialized; } } //# sourceMappingURL=base-wallet.js.map @@ -179390,7 +181669,9 @@ BigInt.prototype.toJSON = function() { }; const isNode = !process.browser && typeof globalThis.window === "undefined"; const dist_crypto = isNode ? external_crypto_.webcrypto : globalThis.crypto; -const chunk = (arr, size) => [...Array(Math.ceil(arr.length / size))].map((_, i) => arr.slice(size * i, size + size * i)); +const chunk = (arr, size) => [...Array(Math.ceil(arr.length / size))].map( + (_, i) => arr.slice(size * i, size + size * i) +); function dist_sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } @@ -179418,7 +181699,9 @@ function bufferToBytes(b) { return new Uint8Array(b.buffer); } function bytesToBase64(bytes) { - return btoa(bytes.reduce((data, byte) => data + String.fromCharCode(byte), "")); + return btoa( + bytes.reduce((data, byte) => data + String.fromCharCode(byte), "") + ); } function base64ToBytes(base64) { return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)); @@ -179428,25 +181711,33 @@ function dist_bytesToHex(bytes) { } function dist_hexToBytes(hexString) { if (hexString.slice(0, 2) === "0x") { - hexString = hexString.replace("0x", ""); + hexString = hexString.slice(2); } if (hexString.length % 2 !== 0) { hexString = "0" + hexString; } - return Uint8Array.from(hexString.match(/.{1,2}/g).map((byte) => parseInt(byte, 16))); + return Uint8Array.from( + hexString.match(/.{1,2}/g).map( + (byte) => parseInt(byte, 16) + ) + ); } function bytesToBN(bytes) { return BigInt(dist_bytesToHex(bytes)); } function bnToBytes(bigint) { let hexString = typeof bigint === "bigint" ? bigint.toString(16) : bigint; - if (hexString.startsWith("0x")) { - hexString = hexString.replace("0x", ""); + if (hexString.slice(0, 2) === "0x") { + hexString = hexString.slice(2); } if (hexString.length % 2 !== 0) { hexString = "0" + hexString; } - return Uint8Array.from(hexString.match(/.{1,2}/g).map((byte) => parseInt(byte, 16))); + return Uint8Array.from( + hexString.match(/.{1,2}/g).map( + (byte) => parseInt(byte, 16) + ) + ); } function leBuff2Int(bytes) { return new bn(bytes, 16, "le"); @@ -179464,6 +181755,9 @@ function toFixedLength(string, length = 32) { function rBigInt(nbytes = 31) { return bytesToBN(dist_crypto.getRandomValues(new Uint8Array(nbytes))); } +function rHex(nbytes = 32) { + return dist_bytesToHex(dist_crypto.getRandomValues(new Uint8Array(nbytes))); +} function bigIntReplacer(key, value) { return typeof value === "bigint" ? value.toString() : value; } @@ -179506,7 +181800,9 @@ function getHttpAgent({ const { HttpsProxyAgent } = require("https-proxy-agent"); const { SocksProxyAgent } = require("socks-proxy-agent"); if (torPort) { - return new SocksProxyAgent(`socks5h://tor${retry}@127.0.0.1:${torPort}`); + return new SocksProxyAgent( + `socks5h://tor${retry}@127.0.0.1:${torPort}` + ); } if (!proxyUrl) { return; @@ -179711,7 +182007,9 @@ const populateTransaction = async (signer, tx) => { tx.gasLimit = gasLimit === BigInt(21e3) ? gasLimit : gasLimit * (BigInt(1e4) + BigInt(signer.gasLimitBump)) / BigInt(1e4); } catch (error) { if (signer.gasFailover) { - console.log("populateTransaction: warning gas estimation failed falling back to 3M gas"); + console.log( + "populateTransaction: warning gas estimation failed falling back to 3M gas" + ); tx.gasLimit = BigInt("3000000"); } else { throw error; @@ -179726,7 +182024,12 @@ class TornadoWallet extends Wallet { gasLimitBump; gasFailover; bumpNonce; - constructor(key, provider, { gasPriceBump, gasLimitBump, gasFailover, bumpNonce } = {}) { + constructor(key, provider, { + gasPriceBump, + gasLimitBump, + gasFailover, + bumpNonce + } = {}) { super(key, provider); this.gasPriceBump = gasPriceBump ?? 0; this.gasLimitBump = gasLimitBump ?? 3e3; @@ -179735,8 +182038,16 @@ class TornadoWallet extends Wallet { } static fromMnemonic(mneomnic, provider, index = 0, options) { const defaultPath = `m/44'/60'/0'/0/${index}`; - const { privateKey } = HDNodeWallet.fromPhrase(mneomnic, void 0, defaultPath); - return new TornadoWallet(privateKey, provider, options); + const { privateKey } = HDNodeWallet.fromPhrase( + mneomnic, + void 0, + defaultPath + ); + return new TornadoWallet( + privateKey, + provider, + options + ); } async populateTransaction(tx) { const txObject = await populateTransaction(this, tx); @@ -179750,7 +182061,12 @@ class TornadoVoidSigner extends VoidSigner { gasLimitBump; gasFailover; bumpNonce; - constructor(address, provider, { gasPriceBump, gasLimitBump, gasFailover, bumpNonce } = {}) { + constructor(address, provider, { + gasPriceBump, + gasLimitBump, + gasFailover, + bumpNonce + } = {}) { super(address, provider); this.gasPriceBump = gasPriceBump ?? 0; this.gasLimitBump = gasLimitBump ?? 3e3; @@ -179769,7 +182085,12 @@ class TornadoRpcSigner extends JsonRpcSigner { gasLimitBump; gasFailover; bumpNonce; - constructor(provider, address, { gasPriceBump, gasLimitBump, gasFailover, bumpNonce } = {}) { + constructor(provider, address, { + gasPriceBump, + gasLimitBump, + gasFailover, + bumpNonce + } = {}) { super(provider, address); this.gasPriceBump = gasPriceBump ?? 0; this.gasLimitBump = gasLimitBump ?? 3e3; @@ -179777,7 +182098,9 @@ class TornadoRpcSigner extends JsonRpcSigner { this.bumpNonce = bumpNonce ?? false; } async sendUncheckedTransaction(tx) { - return super.sendUncheckedTransaction(await populateTransaction(this, tx)); + return super.sendUncheckedTransaction( + await populateTransaction(this, tx) + ); } } class TornadoBrowserProvider extends BrowserProvider { @@ -179792,13 +182115,22 @@ class TornadoBrowserProvider extends BrowserProvider { await this.options.connectWallet(this.options?.netId); } if (this.options?.handleNetworkChanges) { - window?.ethereum?.on("chainChanged", this.options.handleNetworkChanges); + window?.ethereum?.on( + "chainChanged", + this.options.handleNetworkChanges + ); } if (this.options?.handleAccountChanges) { - window?.ethereum?.on("accountsChanged", this.options.handleAccountChanges); + window?.ethereum?.on( + "accountsChanged", + this.options.handleAccountChanges + ); } if (this.options?.handleAccountDisconnect) { - window?.ethereum?.on("disconnect", this.options.handleAccountDisconnect); + window?.ethereum?.on( + "disconnect", + this.options.handleAccountDisconnect + ); } return new TornadoRpcSigner(this, signerAddress, this.options); } @@ -180067,7 +182399,11 @@ async function getStatistic({ }; } } -async function getMeta({ graphApi, subgraphName, fetchDataOptions: fetchDataOptions2 }) { +async function getMeta({ + graphApi, + subgraphName, + fetchDataOptions: fetchDataOptions2 +}) { try { const { _meta: { @@ -180127,7 +182463,12 @@ async function getAllRegisters({ // eslint-disable-next-line prefer-const block: { number: currentBlock } } - } = await getRegisters({ graphApi, subgraphName, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getRegisters({ + graphApi, + subgraphName, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; if (isEmptyArray(result2)) { break; @@ -180146,7 +182487,9 @@ async function getAllRegisters({ events.push(...result2); break; } - result2 = result2.filter(({ blockRegistration }) => blockRegistration !== lastEvent.blockRegistration); + result2 = result2.filter( + ({ blockRegistration }) => blockRegistration !== lastEvent.blockRegistration + ); fromBlock = Number(lastEvent.blockRegistration); events.push(...result2); } @@ -180156,16 +182499,18 @@ async function getAllRegisters({ lastSyncBlock }; } - const result = events.map(({ id, address, ensName, blockRegistration }) => { - const [transactionHash, logIndex] = id.split("-"); - return { - blockNumber: Number(blockRegistration), - logIndex: Number(logIndex), - transactionHash, - ensName, - relayerAddress: address_getAddress(address) - }; - }); + const result = events.map( + ({ id, address, ensName, blockRegistration }) => { + const [transactionHash, logIndex] = id.split("-"); + return { + blockNumber: Number(blockRegistration), + logIndex: Number(logIndex), + transactionHash, + ensName, + relayerAddress: address_getAddress(address) + }; + } + ); return { events: result, lastSyncBlock @@ -180216,7 +182561,14 @@ async function getAllDeposits({ // eslint-disable-next-line prefer-const block: { number: currentBlock } } - } = await getDeposits({ graphApi, subgraphName, currency, amount, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getDeposits({ + graphApi, + subgraphName, + currency, + amount, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; if (isEmptyArray(result2)) { break; @@ -180235,7 +182587,9 @@ async function getAllDeposits({ events.push(...result2); break; } - result2 = result2.filter(({ blockNumber }) => blockNumber !== lastEvent2.blockNumber); + result2 = result2.filter( + ({ blockNumber }) => blockNumber !== lastEvent2.blockNumber + ); fromBlock = Number(lastEvent2.blockNumber); events.push(...result2); } @@ -180245,18 +182599,20 @@ async function getAllDeposits({ lastSyncBlock }; } - const result = events.map(({ id, blockNumber, commitment, index, timestamp, from }) => { - const [transactionHash, logIndex] = id.split("-"); - return { - blockNumber: Number(blockNumber), - logIndex: Number(logIndex), - transactionHash, - commitment, - leafIndex: Number(index), - timestamp: Number(timestamp), - from: address_getAddress(from) - }; - }); + const result = events.map( + ({ id, blockNumber, commitment, index, timestamp, from }) => { + const [transactionHash, logIndex] = id.split("-"); + return { + blockNumber: Number(blockNumber), + logIndex: Number(logIndex), + transactionHash, + commitment, + leafIndex: Number(index), + timestamp: Number(timestamp), + from: address_getAddress(from) + }; + } + ); const [lastEvent] = result.slice(-1); return { events: result, @@ -180311,7 +182667,14 @@ async function getAllWithdrawals({ // eslint-disable-next-line prefer-const block: { number: currentBlock } } - } = await getWithdrawals({ graphApi, subgraphName, currency, amount, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getWithdrawals({ + graphApi, + subgraphName, + currency, + amount, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; if (isEmptyArray(result2)) { break; @@ -180330,7 +182693,9 @@ async function getAllWithdrawals({ events.push(...result2); break; } - result2 = result2.filter(({ blockNumber }) => blockNumber !== lastEvent2.blockNumber); + result2 = result2.filter( + ({ blockNumber }) => blockNumber !== lastEvent2.blockNumber + ); fromBlock = Number(lastEvent2.blockNumber); events.push(...result2); } @@ -180340,18 +182705,20 @@ async function getAllWithdrawals({ lastSyncBlock }; } - const result = events.map(({ id, blockNumber, nullifier, to, fee, timestamp }) => { - const [transactionHash, logIndex] = id.split("-"); - return { - blockNumber: Number(blockNumber), - logIndex: Number(logIndex), - transactionHash, - nullifierHash: nullifier, - to: address_getAddress(to), - fee, - timestamp: Number(timestamp) - }; - }); + const result = events.map( + ({ id, blockNumber, nullifier, to, fee, timestamp }) => { + const [transactionHash, logIndex] = id.split("-"); + return { + blockNumber: Number(blockNumber), + logIndex: Number(logIndex), + transactionHash, + nullifierHash: nullifier, + to: address_getAddress(to), + fee, + timestamp: Number(timestamp) + }; + } + ); const [lastEvent] = result.slice(-1); return { events: result, @@ -180434,7 +182801,12 @@ async function getAllGraphEchoEvents({ // eslint-disable-next-line prefer-const block: { number: currentBlock } } - } = await getGraphEchoEvents({ graphApi, subgraphName, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getGraphEchoEvents({ + graphApi, + subgraphName, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; if (isEmptyArray(result2)) { break; @@ -180453,7 +182825,9 @@ async function getAllGraphEchoEvents({ events.push(...result2); break; } - result2 = result2.filter(({ blockNumber }) => blockNumber !== lastEvent2.blockNumber); + result2 = result2.filter( + ({ blockNumber }) => blockNumber !== lastEvent2.blockNumber + ); fromBlock = Number(lastEvent2.blockNumber); events.push(...result2); } @@ -180521,7 +182895,12 @@ async function getAllEncryptedNotes({ // eslint-disable-next-line prefer-const block: { number: currentBlock } } - } = await getEncryptedNotes({ graphApi, subgraphName, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getEncryptedNotes({ + graphApi, + subgraphName, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; if (isEmptyArray(result2)) { break; @@ -180540,7 +182919,9 @@ async function getAllEncryptedNotes({ events.push(...result2); break; } - result2 = result2.filter(({ blockNumber }) => blockNumber !== lastEvent2.blockNumber); + result2 = result2.filter( + ({ blockNumber }) => blockNumber !== lastEvent2.blockNumber + ); fromBlock = Number(lastEvent2.blockNumber); events.push(...result2); } @@ -180606,14 +182987,29 @@ async function getAllGovernanceEvents({ _meta: { block: { number: currentBlock } } - } = await getGovernanceEvents({ graphApi, subgraphName, fromBlock, fetchDataOptions: fetchDataOptions2 }); + } = await getGovernanceEvents({ + graphApi, + subgraphName, + fromBlock, + fetchDataOptions: fetchDataOptions2 + }); lastSyncBlock = currentBlock; const eventsLength = proposals.length + votes.length + delegates.length + undelegates.length; if (eventsLength === 0) { break; } const formattedProposals = proposals.map( - ({ blockNumber, logIndex, transactionHash, proposalId, proposer, target, startTime, endTime, description }) => { + ({ + blockNumber, + logIndex, + transactionHash, + proposalId, + proposer, + target, + startTime, + endTime, + description + }) => { return { blockNumber: Number(blockNumber), logIndex: Number(logIndex), @@ -180629,7 +183025,17 @@ async function getAllGovernanceEvents({ } ); const formattedVotes = votes.map( - ({ blockNumber, logIndex, transactionHash, proposalId, voter, support, votes: votes2, from, input }) => { + ({ + blockNumber, + logIndex, + transactionHash, + proposalId, + voter, + support, + votes: votes2, + from, + input + }) => { if (!input || input.length > 2048) { input = ""; } @@ -180648,7 +183054,13 @@ async function getAllGovernanceEvents({ } ); const formattedDelegates = delegates.map( - ({ blockNumber, logIndex, transactionHash, account, delegateTo }) => { + ({ + blockNumber, + logIndex, + transactionHash, + account, + delegateTo + }) => { return { blockNumber: Number(blockNumber), logIndex: Number(logIndex), @@ -180660,7 +183072,13 @@ async function getAllGovernanceEvents({ } ); const formattedUndelegates = undelegates.map( - ({ blockNumber, logIndex, transactionHash, account, delegateFrom }) => { + ({ + blockNumber, + logIndex, + transactionHash, + account, + delegateFrom + }) => { return { blockNumber: Number(blockNumber), logIndex: Number(logIndex), @@ -180696,7 +183114,9 @@ async function getAllGovernanceEvents({ count: eventsLength }); } - formattedEvents = formattedEvents.filter(({ blockNumber }) => blockNumber !== lastEvent2.blockNumber); + formattedEvents = formattedEvents.filter( + ({ blockNumber }) => blockNumber !== lastEvent2.blockNumber + ); fromBlock = Number(lastEvent2.blockNumber); result.push(...formattedEvents); } @@ -180716,33 +183136,33 @@ async function getAllGovernanceEvents({ } var graph = /*#__PURE__*/Object.freeze({ - __proto__: null, - GET_DEPOSITS: GET_DEPOSITS, - GET_ECHO_EVENTS: GET_ECHO_EVENTS, - GET_ENCRYPTED_NOTES: GET_ENCRYPTED_NOTES, - GET_GOVERNANCE_APY: GET_GOVERNANCE_APY, - GET_GOVERNANCE_EVENTS: GET_GOVERNANCE_EVENTS, - GET_NOTE_ACCOUNTS: GET_NOTE_ACCOUNTS, - GET_REGISTERED: GET_REGISTERED, - GET_STATISTIC: GET_STATISTIC, - GET_WITHDRAWALS: GET_WITHDRAWALS, - _META: _META, - getAllDeposits: getAllDeposits, - getAllEncryptedNotes: getAllEncryptedNotes, - getAllGovernanceEvents: getAllGovernanceEvents, - getAllGraphEchoEvents: getAllGraphEchoEvents, - getAllRegisters: getAllRegisters, - getAllWithdrawals: getAllWithdrawals, - getDeposits: getDeposits, - getEncryptedNotes: getEncryptedNotes, - getGovernanceEvents: getGovernanceEvents, - getGraphEchoEvents: getGraphEchoEvents, - getMeta: getMeta, - getNoteAccounts: getNoteAccounts, - getRegisters: getRegisters, - getStatistic: getStatistic, - getWithdrawals: getWithdrawals, - queryGraph: queryGraph + __proto__: null, + GET_DEPOSITS: GET_DEPOSITS, + GET_ECHO_EVENTS: GET_ECHO_EVENTS, + GET_ENCRYPTED_NOTES: GET_ENCRYPTED_NOTES, + GET_GOVERNANCE_APY: GET_GOVERNANCE_APY, + GET_GOVERNANCE_EVENTS: GET_GOVERNANCE_EVENTS, + GET_NOTE_ACCOUNTS: GET_NOTE_ACCOUNTS, + GET_REGISTERED: GET_REGISTERED, + GET_STATISTIC: GET_STATISTIC, + GET_WITHDRAWALS: GET_WITHDRAWALS, + _META: _META, + getAllDeposits: getAllDeposits, + getAllEncryptedNotes: getAllEncryptedNotes, + getAllGovernanceEvents: getAllGovernanceEvents, + getAllGraphEchoEvents: getAllGraphEchoEvents, + getAllRegisters: getAllRegisters, + getAllWithdrawals: getAllWithdrawals, + getDeposits: getDeposits, + getEncryptedNotes: getEncryptedNotes, + getGovernanceEvents: getGovernanceEvents, + getGraphEchoEvents: getGraphEchoEvents, + getMeta: getMeta, + getNoteAccounts: getNoteAccounts, + getRegisters: getRegisters, + getStatistic: getStatistic, + getWithdrawals: getWithdrawals, + queryGraph: queryGraph }); class BatchBlockService { @@ -180786,7 +183206,9 @@ class BatchBlockService { let err; while (!this.shouldRetry && retries === 0 || this.shouldRetry && retries < this.retryMax) { try { - return await Promise.all(blocks.map((b) => this.getBlock(b))); + return await Promise.all( + blocks.map((b) => this.getBlock(b)) + ); } catch (e) { retries++; err = e; @@ -180800,8 +183222,13 @@ class BatchBlockService { async getBatchBlocks(blocks) { let blockCount = 0; const results = []; - for (const chunks of chunk(blocks, this.concurrencySize * this.batchSize)) { - const chunksResult = (await Promise.all(this.createBatchRequest(chunk(chunks, this.batchSize)))).flat(); + for (const chunks of chunk( + blocks, + this.concurrencySize * this.batchSize + )) { + const chunksResult = (await Promise.all( + this.createBatchRequest(chunk(chunks, this.batchSize)) + )).flat(); results.push(...chunksResult); blockCount += chunks.length; if (typeof this.onProgress === "function") { @@ -180856,7 +183283,9 @@ class BatchTransactionService { let err; while (!this.shouldRetry && retries === 0 || this.shouldRetry && retries < this.retryMax) { try { - return await Promise.all(txs.map((tx) => this.getTransaction(tx))); + return await Promise.all( + txs.map((tx) => this.getTransaction(tx)) + ); } catch (e) { retries++; err = e; @@ -180870,12 +183299,21 @@ class BatchTransactionService { async getBatchTransactions(txs) { let txCount = 0; const results = []; - for (const chunks of chunk(txs, this.concurrencySize * this.batchSize)) { - const chunksResult = (await Promise.all(this.createBatchRequest(chunk(chunks, this.batchSize)))).flat(); + for (const chunks of chunk( + txs, + this.concurrencySize * this.batchSize + )) { + const chunksResult = (await Promise.all( + this.createBatchRequest(chunk(chunks, this.batchSize)) + )).flat(); results.push(...chunksResult); txCount += chunks.length; if (typeof this.onProgress === "function") { - this.onProgress({ percentage: txCount / txs.length, currentIndex: txCount, totalIndex: txs.length }); + this.onProgress({ + percentage: txCount / txs.length, + currentIndex: txCount, + totalIndex: txs.length + }); } } return results; @@ -180909,17 +183347,27 @@ class BatchEventsService { this.retryMax = retryMax; this.retryOn = retryOn; } - async getPastEvents({ fromBlock, toBlock, type }) { + async getPastEvents({ + fromBlock, + toBlock, + type + }) { let err; let retries = 0; while (!this.shouldRetry && retries === 0 || this.shouldRetry && retries < this.retryMax) { try { - return await this.contract.queryFilter(type, fromBlock, toBlock); + return await this.contract.queryFilter( + type, + fromBlock, + toBlock + ); } catch (e) { err = e; retries++; if (e.message.includes("after last accepted block")) { - const acceptedBlock = parseInt(e.message.split("after last accepted block ")[1]); + const acceptedBlock = parseInt( + e.message.split("after last accepted block ")[1] + ); toBlock = acceptedBlock; } await dist_sleep(this.retryOn); @@ -180933,7 +183381,11 @@ class BatchEventsService { return this.getPastEvents(event); }); } - async getBatchEvents({ fromBlock, toBlock, type = "*" }) { + async getBatchEvents({ + fromBlock, + toBlock, + type = "*" + }) { if (!toBlock) { toBlock = await this.provider.getBlockNumber(); } @@ -181451,7 +183903,7 @@ const defaultConfig = { stablecoin: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", multicallContract: "0xcA11bde05977b3631167028862bE2a173976CA11", routerContract: "0x1572AFE6949fdF51Cb3E0856216670ae9Ee160Ee", - echoContract: "0xa75BF2815618872f155b7C4B0C81bF990f5245E4", + echoContract: "0xcDD1fc3F5ac2782D83449d3AbE80D6b7B273B0e5", offchainOracleContract: "0x1f89EAF03E5b260Bc6D4Ae3c3334b1B750F3e127", tornContract: "0x3AE6667167C0f44394106E197904519D808323cA", governanceContract: "0xe5324cD7602eeb387418e594B87aCADee08aeCAD", @@ -181514,7 +183966,9 @@ const defaultConfig = { } } }; -const enabledChains = Object.values(NetId).filter((n) => typeof n === "number"); +const enabledChains = Object.values(NetId).filter( + (n) => typeof n === "number" +); let customConfig = {}; function addNetwork(newConfig) { enabledChains.push( @@ -181614,8 +184068,14 @@ const addressSchemaType = { isAddress: true }; const bnSchemaType = { type: "string", BN: true }; -const proofSchemaType = { type: "string", pattern: "^0x[a-fA-F0-9]{512}$" }; -const bytes32SchemaType = { type: "string", pattern: "^0x[a-fA-F0-9]{64}$" }; +const proofSchemaType = { + type: "string", + pattern: "^0x[a-fA-F0-9]{512}$" +}; +const bytes32SchemaType = { + type: "string", + pattern: "^0x[a-fA-F0-9]{64}$" +}; const bytes32BNSchemaType = { ...bytes32SchemaType, BN: true }; const baseEventsSchemaProperty = { @@ -181627,7 +184087,9 @@ const baseEventsSchemaProperty = { }, transactionHash: bytes32SchemaType }; -const baseEventsSchemaRequired = Object.keys(baseEventsSchemaProperty); +const baseEventsSchemaRequired = Object.keys( + baseEventsSchemaProperty +); const governanceEventsSchema = { type: "array", items: { @@ -181668,7 +184130,16 @@ const governanceEventsSchema = { from: addressSchemaType, input: { type: "string" } }, - required: [...baseEventsSchemaRequired, "event", "proposalId", "voter", "support", "votes", "from", "input"], + required: [ + ...baseEventsSchemaRequired, + "event", + "proposalId", + "voter", + "support", + "votes", + "from", + "input" + ], additionalProperties: false }, { @@ -181679,7 +184150,11 @@ const governanceEventsSchema = { account: addressSchemaType, delegateTo: addressSchemaType }, - required: [...baseEventsSchemaRequired, "account", "delegateTo"], + required: [ + ...baseEventsSchemaRequired, + "account", + "delegateTo" + ], additionalProperties: false }, { @@ -181690,7 +184165,11 @@ const governanceEventsSchema = { account: addressSchemaType, delegateFrom: addressSchemaType }, - required: [...baseEventsSchemaRequired, "account", "delegateFrom"], + required: [ + ...baseEventsSchemaRequired, + "account", + "delegateFrom" + ], additionalProperties: false } ] @@ -181720,7 +184199,13 @@ const depositsEventsSchema = { timestamp: { type: "number" }, from: addressSchemaType }, - required: [...baseEventsSchemaRequired, "commitment", "leafIndex", "timestamp", "from"], + required: [ + ...baseEventsSchemaRequired, + "commitment", + "leafIndex", + "timestamp", + "from" + ], additionalProperties: false } }; @@ -181735,7 +184220,13 @@ const withdrawalsEventsSchema = { fee: bnSchemaType, timestamp: { type: "number" } }, - required: [...baseEventsSchemaRequired, "nullifierHash", "to", "fee", "timestamp"], + required: [ + ...baseEventsSchemaRequired, + "nullifierHash", + "to", + "fee", + "timestamp" + ], additionalProperties: false } }; @@ -181823,25 +184314,44 @@ const statusSchema = { onSyncEvents: { type: "boolean" }, currentQueue: { type: "number" } }, - required: ["rewardAccount", "instances", "netId", "tornadoServiceFee", "version", "health", "currentQueue"] + required: [ + "rewardAccount", + "instances", + "netId", + "tornadoServiceFee", + "version", + "health", + "currentQueue" + ] }; function getStatusSchema(netId, config, tovarish) { const { tokens, optionalTokens, disabledTokens, nativeCurrency } = config; const schema = JSON.parse(JSON.stringify(statusSchema)); const instances = Object.keys(tokens).reduce( (acc, token) => { - const { instanceAddress, tokenAddress, symbol, decimals, optionalInstances = [] } = tokens[token]; + const { + instanceAddress, + tokenAddress, + symbol, + decimals, + optionalInstances = [] + } = tokens[token]; const amounts = Object.keys(instanceAddress); const instanceProperties = { type: "object", properties: { instanceAddress: { type: "object", - properties: amounts.reduce((acc2, cur) => { - acc2[cur] = addressSchemaType; - return acc2; - }, {}), - required: amounts.filter((amount) => !optionalInstances.includes(amount)) + properties: amounts.reduce( + (acc2, cur) => { + acc2[cur] = addressSchemaType; + return acc2; + }, + {} + ), + required: amounts.filter( + (amount) => !optionalInstances.includes(amount) + ) }, decimals: { enum: [decimals] } }, @@ -181878,17 +184388,26 @@ function getStatusSchema(netId, config, tovarish) { if (_tokens.length) { const ethPrices = { type: "object", - properties: _tokens.reduce((acc, token) => { - acc[token] = bnSchemaType; - return acc; - }, {}), + properties: _tokens.reduce( + (acc, token) => { + acc[token] = bnSchemaType; + return acc; + }, + {} + ), required: _tokens }; schema.properties.ethPrices = ethPrices; schema.required.push("ethPrices"); } if (tovarish) { - schema.required.push("gasPrices", "latestBlock", "latestBalance", "syncStatus", "onSyncEvents"); + schema.required.push( + "gasPrices", + "latestBlock", + "latestBalance", + "syncStatus", + "onSyncEvents" + ); } return schema; } @@ -181920,7 +184439,10 @@ const jobRequestSchema = { const MIN_FEE = 0.1; const MAX_FEE = 0.9; const MIN_STAKE_BALANCE = parseEther("500"); -function calculateScore({ stakeBalance, tornadoServiceFee }) { +function calculateScore({ + stakeBalance, + tornadoServiceFee +}) { if (tornadoServiceFee < MIN_FEE) { tornadoServiceFee = MIN_FEE; } else if (tornadoServiceFee >= MAX_FEE) { @@ -181929,7 +184451,9 @@ function calculateScore({ stakeBalance, tornadoServiceFee }) { const serviceFeeCoefficient = (tornadoServiceFee - MIN_FEE) ** 2; const feeDiffCoefficient = 1 / (MAX_FEE - MIN_FEE) ** 2; const coefficientsMultiplier = 1 - feeDiffCoefficient * serviceFeeCoefficient; - return BigInt(Math.floor(Number(stakeBalance || "0") * coefficientsMultiplier)); + return BigInt( + Math.floor(Number(stakeBalance || "0") * coefficientsMultiplier) + ); } function getWeightRandom(weightsScores, random) { for (let i = 0; i < weightsScores.length; i++) { @@ -181987,7 +184511,9 @@ class RelayerClient { timeout: 3e4, maxRetry: this.fetchDataOptions?.torPort ? 2 : 0 }); - const statusValidator = dist_ajv.compile(getStatusSchema(this.netId, this.config, this.tovarish)); + const statusValidator = dist_ajv.compile( + getStatusSchema(this.netId, this.config, this.tovarish) + ); if (!statusValidator(rawStatus)) { throw new Error("Invalid status schema"); } @@ -182002,7 +184528,9 @@ class RelayerClient { throw new Error("This relayer serves a different network"); } if (relayerAddress && this.netId === NetId.MAINNET && status.rewardAccount !== relayerAddress) { - throw new Error("The Relayer reward address must match registered address"); + throw new Error( + "The Relayer reward address must match registered address" + ); } return status; } @@ -182013,7 +184541,10 @@ class RelayerClient { return; } try { - const status = await this.askRelayerStatus({ hostname, relayerAddress }); + const status = await this.askRelayerStatus({ + hostname, + relayerAddress + }); return { netId: status.netId, url: status.url, @@ -182039,7 +184570,9 @@ class RelayerClient { } async getValidRelayers(relayers) { const invalidRelayers = []; - const validRelayers = (await Promise.all(relayers.map((relayer) => this.filterRelayer(relayer)))).filter((r) => { + const validRelayers = (await Promise.all( + relayers.map((relayer) => this.filterRelayer(relayer)) + )).filter((r) => { if (!r) { return false; } @@ -182109,14 +184642,20 @@ class RelayerClient { const errMsg = `Job ${status}: ${jobUrl} failed reason: ${failedReason}`; throw new Error(errMsg); } else if (status === "SENT") { - console.log(`Job ${status}: ${jobUrl}, txhash: ${txHash} -`); + console.log( + `Job ${status}: ${jobUrl}, txhash: ${txHash} +` + ); } else if (status === "MINED") { - console.log(`Job ${status}: ${jobUrl}, txhash: ${txHash}, confirmations: ${confirmations} -`); + console.log( + `Job ${status}: ${jobUrl}, txhash: ${txHash}, confirmations: ${confirmations} +` + ); } else if (status === "CONFIRMED") { - console.log(`Job ${status}: ${jobUrl}, txhash: ${txHash}, confirmations: ${confirmations} -`); + console.log( + `Job ${status}: ${jobUrl}, txhash: ${txHash}, confirmations: ${confirmations} +` + ); } else { console.log(`Job ${status}: ${jobUrl} `); @@ -182191,17 +184730,38 @@ class BaseEventsService { }; } /* eslint-disable @typescript-eslint/no-unused-vars */ - updateEventProgress({ percentage, type, fromBlock, toBlock, count }) { + updateEventProgress({ + percentage, + type, + fromBlock, + toBlock, + count + }) { } - updateBlockProgress({ percentage, currentIndex, totalIndex }) { + updateBlockProgress({ + percentage, + currentIndex, + totalIndex + }) { } - updateTransactionProgress({ percentage, currentIndex, totalIndex }) { + updateTransactionProgress({ + percentage, + currentIndex, + totalIndex + }) { } - updateGraphProgress({ type, fromBlock, toBlock, count }) { + updateGraphProgress({ + type, + fromBlock, + toBlock, + count + }) { } /* eslint-enable @typescript-eslint/no-unused-vars */ async formatEvents(events) { - return await new Promise((resolve) => resolve(events)); + return await new Promise( + (resolve) => resolve(events) + ); } /** * Get saved or cached events @@ -182267,7 +184827,11 @@ class BaseEventsService { } this.updateEventProgress({ percentage: 0, type: this.getType() }); const events = await this.formatEvents( - await this.batchEventsService.getBatchEvents({ fromBlock, toBlock, type: this.getType() }) + await this.batchEventsService.getBatchEvents({ + fromBlock, + toBlock, + type: this.getType() + }) ); return { events, @@ -182281,7 +184845,9 @@ class BaseEventsService { }; } } - async getLatestEvents({ fromBlock }) { + async getLatestEvents({ + fromBlock + }) { if (this.tovarishClient?.selectedRelayer && ![DEPOSIT, WITHDRAWAL].includes(this.type.toLowerCase())) { const { events, lastSyncBlock: lastBlock } = await this.tovarishClient.getEvents({ type: this.getTovarishType(), @@ -182294,7 +184860,9 @@ class BaseEventsService { } const graphEvents = await this.getEventsFromGraph({ fromBlock }); const lastSyncBlock = graphEvents.lastBlock && graphEvents.lastBlock >= fromBlock ? graphEvents.lastBlock : fromBlock; - const rpcEvents = await this.getEventsFromRpc({ fromBlock: lastSyncBlock }); + const rpcEvents = await this.getEventsFromRpc({ + fromBlock: lastSyncBlock + }); return { events: [...graphEvents.events, ...rpcEvents.events], lastBlock: rpcEvents.lastBlock @@ -182326,7 +184894,10 @@ class BaseEventsService { } const newEvents = await this.getLatestEvents({ fromBlock }); const eventSet = /* @__PURE__ */ new Set(); - const allEvents = [...savedEvents.events, ...newEvents.events].sort((a, b) => { + const allEvents = [ + ...savedEvents.events, + ...newEvents.events + ].sort((a, b) => { if (a.blockNumber === b.blockNumber) { return a.logIndex - b.logIndex; } @@ -182361,7 +184932,14 @@ class BaseTornadoService extends BaseEventsService { batchTransactionService; batchBlockService; constructor(serviceConstructor) { - const { Tornado: contract, amount, currency, provider, optionalTree, merkleTreeService } = serviceConstructor; + const { + Tornado: contract, + amount, + currency, + provider, + optionalTree, + merkleTreeService + } = serviceConstructor; super({ ...serviceConstructor, contract @@ -182398,44 +184976,60 @@ class BaseTornadoService extends BaseEventsService { async formatEvents(events) { const type = this.getType().toLowerCase(); if (type === DEPOSIT) { - const formattedEvents = events.map(({ blockNumber, index: logIndex, transactionHash, args }) => { - const { commitment, leafIndex, timestamp } = args; - return { - blockNumber, - logIndex, - transactionHash, - commitment, - leafIndex: Number(leafIndex), - timestamp: Number(timestamp) - }; - }); - const txs = await this.batchTransactionService.getBatchTransactions([ - ...new Set(formattedEvents.map(({ transactionHash }) => transactionHash)) - ]); + const formattedEvents = events.map( + ({ blockNumber, index: logIndex, transactionHash, args }) => { + const { commitment, leafIndex, timestamp } = args; + return { + blockNumber, + logIndex, + transactionHash, + commitment, + leafIndex: Number(leafIndex), + timestamp: Number(timestamp) + }; + } + ); + const txs = await this.batchTransactionService.getBatchTransactions( + [ + ...new Set( + formattedEvents.map( + ({ transactionHash }) => transactionHash + ) + ) + ] + ); return formattedEvents.map((event) => { - const { from } = txs.find(({ hash }) => hash === event.transactionHash); + const { from } = txs.find( + ({ hash }) => hash === event.transactionHash + ); return { ...event, from }; }); } else { - const formattedEvents = events.map(({ blockNumber, index: logIndex, transactionHash, args }) => { - const { nullifierHash, to, fee } = args; - return { - blockNumber, - logIndex, - transactionHash, - nullifierHash: String(nullifierHash), - to: address_getAddress(to), - fee: String(fee) - }; - }); + const formattedEvents = events.map( + ({ blockNumber, index: logIndex, transactionHash, args }) => { + const { nullifierHash, to, fee } = args; + return { + blockNumber, + logIndex, + transactionHash, + nullifierHash: String(nullifierHash), + to: address_getAddress(to), + fee: String(fee) + }; + } + ); const blocks = await this.batchBlockService.getBatchBlocks([ - ...new Set(formattedEvents.map(({ blockNumber }) => blockNumber)) + ...new Set( + formattedEvents.map(({ blockNumber }) => blockNumber) + ) ]); return formattedEvents.map((event) => { - const { timestamp } = blocks.find(({ number }) => number === event.blockNumber); + const { timestamp } = blocks.find( + ({ number }) => number === event.blockNumber + ); return { ...event, timestamp @@ -182455,12 +185049,16 @@ class BaseTornadoService extends BaseEventsService { throw new Error(errMsg); } if (this.merkleTreeService && (!this.optionalTree || hasNewEvents)) { - return await this.merkleTreeService.verifyTree(depositEvents); + return await this.merkleTreeService.verifyTree( + depositEvents + ); } } return void 0; } - async getLatestEvents({ fromBlock }) { + async getLatestEvents({ + fromBlock + }) { if (this.tovarishClient?.selectedRelayer) { const { events, lastSyncBlock: lastBlock } = await this.tovarishClient.getEvents({ type: this.getTovarishType(), @@ -182507,7 +185105,9 @@ class BaseEchoService extends BaseEventsService { } }).filter((e) => e); } - async getEventsFromGraph({ fromBlock }) { + async getEventsFromGraph({ + fromBlock + }) { if (!this.graphApi || this.graphApi.includes("api.thegraph.com")) { return { events: [], @@ -182605,10 +185205,20 @@ function parseDescription(id, text) { function parseComment(Governance, calldata) { try { const methodLength = 4; - const result = abiCoder.decode(["address[]", "uint256", "bool"], data_dataSlice(calldata, methodLength)); - const data = Governance.interface.encodeFunctionData("castDelegatedVote", result); + const result = abiCoder.decode( + ["address[]", "uint256", "bool"], + data_dataSlice(calldata, methodLength) + ); + const data = Governance.interface.encodeFunctionData( + // @ts-expect-error encodeFunctionData is broken lol + "castDelegatedVote", + result + ); const length = dataLength(data); - const str = abiCoder.decode(["string"], data_dataSlice(calldata, length))[0]; + const str = abiCoder.decode( + ["string"], + data_dataSlice(calldata, length) + )[0]; const [contact, message] = JSON.parse(str); return { contact, @@ -182655,61 +185265,84 @@ class BaseGovernanceService extends BaseEventsService { const votedEvents = []; const delegatedEvents = []; const undelegatedEvents = []; - events.forEach(({ blockNumber, index: logIndex, transactionHash, args, eventName: event }) => { - const eventObjects = { + events.forEach( + ({ blockNumber, - logIndex, + index: logIndex, transactionHash, - event - }; - if (event === "ProposalCreated") { - const { id, proposer, target, startTime, endTime, description } = args; - proposalEvents.push({ - ...eventObjects, - id: Number(id), - proposer, - target, - startTime: Number(startTime), - endTime: Number(endTime), - description - }); + args, + eventName: event + }) => { + const eventObjects = { + blockNumber, + logIndex, + transactionHash, + event + }; + if (event === "ProposalCreated") { + const { + id, + proposer, + target, + startTime, + endTime, + description + } = args; + proposalEvents.push({ + ...eventObjects, + id: Number(id), + proposer, + target, + startTime: Number(startTime), + endTime: Number(endTime), + description + }); + } + if (event === "Voted") { + const { proposalId, voter, support, votes } = args; + votedEvents.push({ + ...eventObjects, + proposalId: Number(proposalId), + voter, + support, + votes, + from: "", + input: "" + }); + } + if (event === "Delegated") { + const { account, to: delegateTo } = args; + delegatedEvents.push({ + ...eventObjects, + account, + delegateTo + }); + } + if (event === "Undelegated") { + const { account, from: delegateFrom } = args; + undelegatedEvents.push({ + ...eventObjects, + account, + delegateFrom + }); + } } - if (event === "Voted") { - const { proposalId, voter, support, votes } = args; - votedEvents.push({ - ...eventObjects, - proposalId: Number(proposalId), - voter, - support, - votes, - from: "", - input: "" - }); - } - if (event === "Delegated") { - const { account, to: delegateTo } = args; - delegatedEvents.push({ - ...eventObjects, - account, - delegateTo - }); - } - if (event === "Undelegated") { - const { account, from: delegateFrom } = args; - undelegatedEvents.push({ - ...eventObjects, - account, - delegateFrom - }); - } - }); + ); if (votedEvents.length) { this.updateTransactionProgress({ percentage: 0 }); - const txs = await this.batchTransactionService.getBatchTransactions([ - ...new Set(votedEvents.map(({ transactionHash }) => transactionHash)) - ]); + const txs = await this.batchTransactionService.getBatchTransactions( + [ + ...new Set( + votedEvents.map( + ({ transactionHash }) => transactionHash + ) + ) + ] + ); votedEvents.forEach((event, index) => { - let { data: input, from } = txs.find((t) => t.hash === event.transactionHash); + let { data: input, from } = txs.find( + (t) => t.hash === event.transactionHash + ); if (!input || input.length > 2048) { input = ""; } @@ -182717,9 +185350,16 @@ class BaseGovernanceService extends BaseEventsService { votedEvents[index].input = input; }); } - return [...proposalEvents, ...votedEvents, ...delegatedEvents, ...undelegatedEvents]; + return [ + ...proposalEvents, + ...votedEvents, + ...delegatedEvents, + ...undelegatedEvents + ]; } - async getEventsFromGraph({ fromBlock }) { + async getEventsFromGraph({ + fromBlock + }) { if (!this.graphApi || !this.subgraphName || this.graphApi.includes("api.thegraph.com")) { return { events: [], @@ -182730,8 +185370,12 @@ class BaseGovernanceService extends BaseEventsService { } async getAllProposals() { const { events } = await this.updateEvents(); - const proposalEvents = events.filter((e) => e.event === "ProposalCreated"); - const allProposers = [...new Set(proposalEvents.map((e) => [e.proposer]).flat())]; + const proposalEvents = events.filter( + (e) => e.event === "ProposalCreated" + ); + const allProposers = [ + ...new Set(proposalEvents.map((e) => [e.proposer]).flat()) + ]; const [QUORUM_VOTES, proposalStatus, proposerNameRecords] = await Promise.all([ this.Governance.QUORUM_VOTES(), this.Aggregator.getAllProposals(this.Governance.target), @@ -182771,7 +185415,9 @@ class BaseGovernanceService extends BaseEventsService { const votedEvents = events.filter( (e) => e.event === "Voted" && e.proposalId === proposalId ); - const allVoters = [...new Set(votedEvents.map((e) => [e.from, e.voter]).flat())]; + const allVoters = [ + ...new Set(votedEvents.map((e) => [e.from, e.voter]).flat()) + ]; const names = await this.ReverseRecords.getNames(allVoters); const ensNames = allVoters.reduce( (acc, address, index) => { @@ -182784,7 +185430,10 @@ class BaseGovernanceService extends BaseEventsService { ); const votes = votedEvents.map((event) => { const { from, voter } = event; - const { contact, message } = parseComment(this.Governance, event.input); + const { contact, message } = parseComment( + this.Governance, + event.input + ); return { ...event, contact, @@ -182797,8 +185446,12 @@ class BaseGovernanceService extends BaseEventsService { } async getDelegatedBalance(ethAccount) { const { events } = await this.getSavedEvents(); - const delegatedAccs = events.filter((e) => e.event === "Delegated" && e.delegateTo === ethAccount).map((e) => e.account); - const undelegatedAccs = events.filter((e) => e.event === "Undelegated" && e.delegateFrom === ethAccount).map((e) => e.account); + const delegatedAccs = events.filter( + (e) => e.event === "Delegated" && e.delegateTo === ethAccount + ).map((e) => e.account); + const undelegatedAccs = events.filter( + (e) => e.event === "Undelegated" && e.delegateFrom === ethAccount + ).map((e) => e.account); const undel = [...undelegatedAccs]; const uniq = delegatedAccs.filter((acc) => { const indexUndelegated = undel.indexOf(acc); @@ -182835,14 +185488,17 @@ async function getTovarishNetworks(registryService, relayers) { await Promise.all( relayers.filter((r) => r.tovarishHost).map(async (relayer) => { try { - relayer.tovarishNetworks = await fetchData(relayer.tovarishHost, { - ...registryService.fetchDataOptions, - headers: { - "Content-Type": "application/json" - }, - timeout: 3e4, - maxRetry: registryService.fetchDataOptions?.torPort ? 2 : 0 - }); + relayer.tovarishNetworks = await fetchData( + relayer.tovarishHost, + { + ...registryService.fetchDataOptions, + headers: { + "Content-Type": "application/json" + }, + timeout: 3e4, + maxRetry: registryService.fetchDataOptions?.torPort ? 2 : 0 + } + ); } catch { relayer.tovarishNetworks = []; } @@ -182863,7 +185519,11 @@ class BaseRegistryService extends BaseEventsService { relayerEnsSubdomains; updateInterval; constructor(serviceConstructor) { - const { RelayerRegistry: contract, Aggregator, relayerEnsSubdomains } = serviceConstructor; + const { + RelayerRegistry: contract, + Aggregator, + relayerEnsSubdomains + } = serviceConstructor; super({ ...serviceConstructor, contract, @@ -182884,18 +185544,20 @@ class BaseRegistryService extends BaseEventsService { return "getAllRegisters"; } async formatEvents(events) { - return events.map(({ blockNumber, index: logIndex, transactionHash, args }) => { - const eventObjects = { - blockNumber, - logIndex, - transactionHash - }; - return { - ...eventObjects, - ensName: args.ensName, - relayerAddress: args.relayerAddress - }; - }); + return events.map( + ({ blockNumber, index: logIndex, transactionHash, args }) => { + const eventObjects = { + blockNumber, + logIndex, + transactionHash + }; + return { + ...eventObjects, + ensName: args.ensName, + relayerAddress: args.relayerAddress + }; + } + ); } /** * Get saved or cached relayers @@ -182936,38 +185598,50 @@ class BaseRegistryService extends BaseEventsService { } return false; }); - const relayerNameHashes = uniqueRegisters.map((r) => namehash_namehash(r.ensName)); + const relayerNameHashes = uniqueRegisters.map( + (r) => namehash_namehash(r.ensName) + ); const [relayersData, timestamp] = await Promise.all([ - this.Aggregator.relayersData.staticCall(relayerNameHashes, subdomains.concat("tovarish-relayer")), + this.Aggregator.relayersData.staticCall( + relayerNameHashes, + subdomains.concat("tovarish-relayer") + ), this.provider.getBlock(lastBlock).then((b) => Number(b?.timestamp)) ]); - const relayers = relayersData.map(({ owner, balance: stakeBalance, records, isRegistered }, index) => { - const { ensName, relayerAddress } = uniqueRegisters[index]; - let tovarishHost = void 0; - const hostnames = records.reduce((acc, record, recordIndex) => { - if (record) { - if (recordIndex === records.length - 1) { - tovarishHost = record; + const relayers = relayersData.map( + ({ owner, balance: stakeBalance, records, isRegistered }, index) => { + const { ensName, relayerAddress } = uniqueRegisters[index]; + let tovarishHost = void 0; + const hostnames = records.reduce( + (acc, record, recordIndex) => { + if (record) { + if (recordIndex === records.length - 1) { + tovarishHost = record; + return acc; + } + acc[Number( + Object.keys(this.relayerEnsSubdomains)[recordIndex] + )] = record; + } return acc; - } - acc[Number(Object.keys(this.relayerEnsSubdomains)[recordIndex])] = record; + }, + {} + ); + const hasMinBalance = stakeBalance >= MIN_STAKE_BALANCE; + const preCondition = Object.keys(hostnames).length && isRegistered && hasMinBalance; + if (preCondition) { + return { + ensName, + relayerAddress: owner, + registeredAddress: owner !== relayerAddress ? relayerAddress : void 0, + isRegistered, + stakeBalance: formatEther(stakeBalance), + hostnames, + tovarishHost + }; } - return acc; - }, {}); - const hasMinBalance = stakeBalance >= MIN_STAKE_BALANCE; - const preCondition = Object.keys(hostnames).length && isRegistered && hasMinBalance; - if (preCondition) { - return { - ensName, - relayerAddress: owner, - registeredAddress: owner !== relayerAddress ? relayerAddress : void 0, - isRegistered, - stakeBalance: formatEther(stakeBalance), - hostnames, - tovarishHost - }; } - }).filter((r) => r); + ).filter((r) => r); await getTovarishNetworks(this, relayers); const allRelayers = [...staticRelayers, ...relayers]; const tovarishRelayers = allRelayers.filter((r) => r.tovarishHost); @@ -183044,7 +185718,9 @@ async function downloadZip({ } } const { [zipName]: content } = await unzipAsync(data); - console.log(`Downloaded ${url}${zipDigest ? ` ( Digest: ${zipDigest} )` : ""}`); + console.log( + `Downloaded ${url}${zipDigest ? ` ( Digest: ${zipDigest} )` : ""}` + ); if (parseJson) { return JSON.parse(new TextDecoder().decode(content)); } @@ -183095,7 +185771,9 @@ async function loadDBEvents({ lastBlock: 0 }; } - const events = (await idb.getAll({ storeName: instanceName })).map((e) => { + const events = (await idb.getAll({ + storeName: instanceName + })).map((e) => { delete e.eid; return e; }); @@ -183167,7 +185845,10 @@ class DBTornadoService extends BaseTornadoService { zipDigest: this.zipDigest }); } - async saveEvents({ events, lastBlock }) { + async saveEvents({ + events, + lastBlock + }) { await saveDBEvents({ idb: this.idb, instanceName: this.getInstanceName(), @@ -188553,16 +191234,16 @@ class ReverseRecords__factory { } var dist_index = /*#__PURE__*/Object.freeze({ - __proto__: null, - ENSNameWrapper__factory: ENSNameWrapper__factory, - ENSRegistry__factory: ENSRegistry__factory, - ENSResolver__factory: ENSResolver__factory, - ENS__factory: dist_ENS_factory, - ERC20__factory: dist_ERC20_factory, - Multicall__factory: Multicall__factory, - OffchainOracle__factory: OffchainOracle__factory, - OvmGasPriceOracle__factory: OvmGasPriceOracle__factory, - ReverseRecords__factory: ReverseRecords__factory + __proto__: null, + ENSNameWrapper__factory: ENSNameWrapper__factory, + ENSRegistry__factory: ENSRegistry__factory, + ENSResolver__factory: ENSResolver__factory, + ENS__factory: dist_ENS_factory, + ERC20__factory: dist_ERC20_factory, + Multicall__factory: Multicall__factory, + OffchainOracle__factory: OffchainOracle__factory, + OvmGasPriceOracle__factory: OvmGasPriceOracle__factory, + ReverseRecords__factory: ReverseRecords__factory }); class Pedersen { @@ -188578,7 +191259,9 @@ class Pedersen { } async unpackPoint(buffer) { await this.pedersenPromise; - return this.babyJub?.unpackPoint(this.pedersenHash?.hash(buffer)); + return this.babyJub?.unpackPoint( + this.pedersenHash?.hash(buffer) + ); } toStringBuffer(buffer) { return this.babyJub?.F.toString(buffer); @@ -188590,8 +191273,44 @@ async function buffPedersenHash(buffer) { return pedersen.toStringBuffer(hash); } -async function createDeposit({ nullifier, secret }) { - const preimage = new Uint8Array([...dist_leInt2Buff(nullifier), ...dist_leInt2Buff(secret)]); +function parseNote(noteString) { + const noteRegex = /tornado-(?\w+)-(?[\d.]+)-(?\d+)-0x(?[0-9a-fA-F]{124})/g; + const match = noteRegex.exec(noteString); + if (!match) { + return; + } + const { currency, amount, netId, noteHex } = match.groups; + return { + currency: currency.toLowerCase(), + amount, + netId: Number(netId), + noteHex: "0x" + noteHex, + note: noteString + }; +} +function parseInvoice(invoiceString) { + const invoiceRegex = /tornadoInvoice-(?\w+)-(?[\d.]+)-(?\d+)-0x(?[0-9a-fA-F]{64})/g; + const match = invoiceRegex.exec(invoiceString); + if (!match) { + return; + } + const { currency, amount, netId, commitmentHex } = match.groups; + return { + currency: currency.toLowerCase(), + amount, + netId: Number(netId), + commitmentHex: "0x" + commitmentHex, + invoice: invoiceString + }; +} +async function createDeposit({ + nullifier, + secret +}) { + const preimage = new Uint8Array([ + ...dist_leInt2Buff(nullifier), + ...dist_leInt2Buff(secret) + ]); const noteHex = toFixedHex(bytesToBN(preimage), 62); const commitment = BigInt(await buffPedersenHash(preimage)); const commitmentHex = toFixedHex(commitment); @@ -188658,7 +191377,13 @@ class Deposit { 2 ); } - static async createNote({ currency, amount, netId, nullifier, secret }) { + static async createNote({ + currency, + amount, + netId, + nullifier, + secret + }) { if (!nullifier) { nullifier = rBigInt(31); } @@ -188684,31 +191409,36 @@ class Deposit { return newDeposit; } static async parseNote(noteString) { - const noteRegex = /tornado-(?\w+)-(?[\d.]+)-(?\d+)-0x(?[0-9a-fA-F]{124})/g; - const match = noteRegex.exec(noteString); - if (!match) { + const parsedNote = parseNote(noteString); + if (!parsedNote) { throw new Error("The note has invalid format"); } - const matchGroup = match?.groups; - const currency = matchGroup.currency.toLowerCase(); - const amount = matchGroup.amount; - const netId = Number(matchGroup.netId); - const bytes = bnToBytes("0x" + matchGroup.note); + const { + currency, + amount, + netId, + note, + noteHex: parsedNoteHex + } = parsedNote; + const bytes = bnToBytes(parsedNoteHex); const nullifier = BigInt(leBuff2Int(bytes.slice(0, 31)).toString()); const secret = BigInt(leBuff2Int(bytes.slice(31, 62)).toString()); - const depositObject = await createDeposit({ nullifier, secret }); - const invoice = `tornadoInvoice-${currency}-${amount}-${netId}-${depositObject.commitmentHex}`; + const { noteHex, commitmentHex, nullifierHex } = await createDeposit({ + nullifier, + secret + }); + const invoice = `tornadoInvoice-${currency}-${amount}-${netId}-${commitmentHex}`; const newDeposit = new Deposit({ currency, amount, netId, - note: noteString, - noteHex: depositObject.noteHex, + note, + noteHex, invoice, nullifier, secret, - commitmentHex: depositObject.commitmentHex, - nullifierHex: depositObject.nullifierHex + commitmentHex, + nullifierHex }); return newDeposit; } @@ -188717,23 +191447,19 @@ class Invoice { currency; amount; netId; - commitment; + commitmentHex; invoice; constructor(invoiceString) { - const invoiceRegex = /tornadoInvoice-(?\w+)-(?[\d.]+)-(?\d+)-0x(?[0-9a-fA-F]{64})/g; - const match = invoiceRegex.exec(invoiceString); - if (!match) { - throw new Error("The note has invalid format"); + const parsedInvoice = parseInvoice(invoiceString); + if (!parsedInvoice) { + throw new Error("The invoice has invalid format"); } - const matchGroup = match?.groups; - const currency = matchGroup.currency.toLowerCase(); - const amount = matchGroup.amount; - const netId = Number(matchGroup.netId); + const { currency, amount, netId, invoice, commitmentHex } = parsedInvoice; this.currency = currency; this.amount = amount; this.netId = netId; - this.commitment = "0x" + matchGroup.commitment; - this.invoice = invoiceString; + this.commitmentHex = commitmentHex; + this.invoice = invoice; } toString() { return JSON.stringify( @@ -188741,7 +191467,7 @@ class Invoice { currency: this.currency, amount: this.amount, netId: this.netId, - commitment: this.commitment, + commitmentHex: this.commitmentHex, invoice: this.invoice }, null, @@ -188750,11 +191476,22 @@ class Invoice { } } -function packEncryptedMessage({ nonce, ephemPublicKey, ciphertext }) { +function packEncryptedMessage({ + nonce, + ephemPublicKey, + ciphertext +}) { const nonceBuf = toFixedHex(dist_bytesToHex(base64ToBytes(nonce)), 24); - const ephemPublicKeyBuf = toFixedHex(dist_bytesToHex(base64ToBytes(ephemPublicKey)), 32); + const ephemPublicKeyBuf = toFixedHex( + dist_bytesToHex(base64ToBytes(ephemPublicKey)), + 32 + ); const ciphertextBuf = dist_bytesToHex(base64ToBytes(ciphertext)); - const messageBuff = dist_concatBytes(dist_hexToBytes(nonceBuf), dist_hexToBytes(ephemPublicKeyBuf), dist_hexToBytes(ciphertextBuf)); + const messageBuff = dist_concatBytes( + dist_hexToBytes(nonceBuf), + dist_hexToBytes(ephemPublicKeyBuf), + dist_hexToBytes(ciphertextBuf) + ); return dist_bytesToHex(messageBuff); } function unpackEncryptedMessage(encryptedMessage) { @@ -188771,7 +191508,6 @@ function unpackEncryptedMessage(encryptedMessage) { }; } class NoteAccount { - netId; blockNumber; // Dedicated 32 bytes private key only used for note encryption, backed up to an Echoer and local for future derivation // Note that unlike the private key it shouldn't have the 0x prefix @@ -188780,28 +191516,29 @@ class NoteAccount { recoveryAddress; // Note encryption public key derived from recoveryKey recoveryPublicKey; - Echoer; - constructor({ netId, blockNumber, recoveryKey, Echoer: Echoer2 }) { + constructor({ blockNumber, recoveryKey }) { if (!recoveryKey) { - recoveryKey = dist_bytesToHex(dist_crypto.getRandomValues(new Uint8Array(32))).slice(2); + recoveryKey = rHex(32).slice(2); } - this.netId = Math.floor(Number(netId)); this.blockNumber = blockNumber; this.recoveryKey = recoveryKey; this.recoveryAddress = computeAddress("0x" + recoveryKey); this.recoveryPublicKey = (0,dist.getEncryptionPublicKey)(recoveryKey); - this.Echoer = Echoer2; } /** * Intends to mock eth_getEncryptionPublicKey behavior from MetaMask * In order to make the recoveryKey retrival from Echoer possible from the bare private key */ - static getWalletPublicKey(wallet) { - let { privateKey } = wallet; - if (privateKey.startsWith("0x")) { - privateKey = privateKey.replace("0x", ""); + static async getSignerPublicKey(signer) { + if (signer.privateKey) { + const wallet = signer; + const privateKey = wallet.privateKey.slice(0, 2) === "0x" ? wallet.privateKey.slice(2) : wallet.privateKey; + return (0,dist.getEncryptionPublicKey)(privateKey); } - return (0,dist.getEncryptionPublicKey)(privateKey); + const provider = signer.provider; + return await provider.send("eth_getEncryptionPublicKey", [ + signer.address + ]); } // This function intends to provide an encrypted value of recoveryKey for an on-chain Echoer backup purpose // Thus, the pubKey should be derived by a Wallet instance or from Web3 wallets @@ -188825,25 +191562,47 @@ class NoteAccount { /** * Decrypt Echoer backuped note encryption account with private keys */ - decryptAccountsWithWallet(wallet, events) { - let { privateKey } = wallet; - if (privateKey.startsWith("0x")) { - privateKey = privateKey.replace("0x", ""); - } + static async decryptSignerNoteAccounts(signer, events) { + const signerAddress = signer.address; const decryptedEvents = []; for (const event of events) { + if (event.address !== signerAddress) { + continue; + } try { - const unpackedMessage = unpackEncryptedMessage(event.encryptedAccount); - const recoveryKey = (0,dist.decrypt)({ - encryptedData: unpackedMessage, - privateKey - }); + const unpackedMessage = unpackEncryptedMessage( + event.encryptedAccount + ); + let recoveryKey; + if (signer.privateKey) { + const wallet = signer; + const privateKey = wallet.privateKey.slice(0, 2) === "0x" ? wallet.privateKey.slice(2) : wallet.privateKey; + recoveryKey = (0,dist.decrypt)({ + encryptedData: unpackedMessage, + privateKey + }); + } else { + const { version, nonce, ephemPublicKey, ciphertext } = unpackedMessage; + const unpackedBuffer = dist_bytesToHex( + new TextEncoder().encode( + JSON.stringify({ + version, + nonce, + ephemPublicKey, + ciphertext + }) + ) + ); + const provider = signer.provider; + recoveryKey = await provider.send("eth_decrypt", [ + unpackedBuffer, + signerAddress + ]); + } decryptedEvents.push( new NoteAccount({ - netId: this.netId, blockNumber: event.blockNumber, - recoveryKey, - Echoer: this.Echoer + recoveryKey }) ); } catch { @@ -188856,7 +191615,9 @@ class NoteAccount { const decryptedEvents = []; for (const event of events) { try { - const unpackedMessage = unpackEncryptedMessage(event.encryptedNote); + const unpackedMessage = unpackEncryptedMessage( + event.encryptedNote + ); const [address, noteHex] = (0,dist.decrypt)({ encryptedData: unpackedMessage, privateKey: this.recoveryKey @@ -188929,9 +191690,18 @@ class ENSUtils { async getContracts() { const { chainId } = await this.provider.getNetwork(); const { ensRegistry, ensPublicResolver, ensNameWrapper } = EnsContracts[Number(chainId)]; - this.ENSRegistry = ENSRegistry__factory.connect(ensRegistry, this.provider); - this.ENSResolver = ENSResolver__factory.connect(ensPublicResolver, this.provider); - this.ENSNameWrapper = ENSNameWrapper__factory.connect(ensNameWrapper, this.provider); + this.ENSRegistry = ENSRegistry__factory.connect( + ensRegistry, + this.provider + ); + this.ENSResolver = ENSResolver__factory.connect( + ensPublicResolver, + this.provider + ); + this.ENSNameWrapper = ENSNameWrapper__factory.connect( + ensNameWrapper, + this.provider + ); } async getOwner(name) { if (!this.ENSRegistry) { @@ -188945,7 +191715,9 @@ class ENSUtils { await this.getContracts(); } const owner = signer.address; - const nameWrapper = this.ENSNameWrapper.connect(signer); + const nameWrapper = this.ENSNameWrapper.connect( + signer + ); const { labelhash: labelhash2 } = makeLabelNodeAndParent(name); return nameWrapper.unwrapETH2LD(labelhash2, owner, owner); } @@ -188958,11 +191730,20 @@ class ENSUtils { const registry = this.ENSRegistry.connect(signer); const owner = signer.address; const { labelhash: labelhash2, parentNode } = makeLabelNodeAndParent(name); - return registry.setSubnodeRecord(parentNode, labelhash2, owner, resolver.target, BigInt(0)); + return registry.setSubnodeRecord( + parentNode, + labelhash2, + owner, + resolver.target, + BigInt(0) + ); } // https://github.com/ensdomains/ensjs/blob/main/packages/ensjs/src/functions/wallet/setTextRecord.ts async setText(signer, name, key, value) { - const resolver = ENSResolver__factory.connect((await this.getResolver(name))?.address, signer); + const resolver = ENSResolver__factory.connect( + (await this.getResolver(name))?.address, + signer + ); return resolver.setText(namehash(name), key, value); } getResolver(name) { @@ -189012,7 +191793,12 @@ class TornadoFeeOracle { })(), (async () => { try { - return BigInt(await this.provider.send("eth_maxPriorityFeePerGas", [])); + return BigInt( + await this.provider.send( + "eth_maxPriorityFeePerGas", + [] + ) + ); } catch { return BigInt(0); } @@ -189039,7 +191825,9 @@ class TornadoFeeOracle { to: DUMMY_ADDRESS }; } - return this.ovmGasPriceOracle.getL1Fee.staticCall(Transaction.from(tx).unsignedSerialized); + return this.ovmGasPriceOracle.getL1Fee.staticCall( + Transaction.from(tx).unsignedSerialized + ); } /** * We don't need to distinguish default refunds by tokens since most users interact with other defi protocols after withdrawal @@ -189053,7 +191841,11 @@ class TornadoFeeOracle { * Calculates token amount for required ethRefund purchases required to calculate fees */ calculateTokenAmount(ethRefund, tokenPriceInEth, tokenDecimals) { - return convertETHToTokenAmount(ethRefund, tokenPriceInEth, tokenDecimals); + return convertETHToTokenAmount( + ethRefund, + tokenPriceInEth, + tokenDecimals + ); } /** * Warning: For tokens you need to check if the fees are above denomination @@ -189077,7 +191869,11 @@ class TornadoFeeOracle { return (gasCosts + relayerFee) * BigInt(premiumPercent ? 100 + premiumPercent : 100) / BigInt(100); } const feeInEth = gasCosts + BigInt(ethRefund); - return (convertETHToTokenAmount(feeInEth, tokenPriceInWei, tokenDecimals) + relayerFee) * BigInt(premiumPercent ? 100 + premiumPercent : 100) / BigInt(100); + return (convertETHToTokenAmount( + feeInEth, + tokenPriceInWei, + tokenDecimals + ) + relayerFee) * BigInt(premiumPercent ? 100 + premiumPercent : 100) / BigInt(100); } } @@ -189125,6 +191921,11 @@ function gasZipMinMax(ethUsd) { }; } +const hasherBytecode = "0x38600c600039612b1b6000f3606460006000377c01000000000000000000000000000000000000000000000000000000006000510463f47d33b5146200003557fe5b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016004518160245181838180828009800909089082827f0fbe43c36a80e36d7c7c584d4f8f3759fb51f0d66065d8a227b688d12488c5d408839081808280098009098391089082827f9c48cd3e00a6195a253fc009e60f249456f802ff9baf6549210d201321efc1cc08839081808280098009098391089082827f27c0849dba2643077c13eb42ffb97663cdcecd669bf10f756be30bab71b86cf808839081808280098009098391089082827f2bf76744736132e5c68f7dfdd5b792681d415098554fd8280f00d11b172b80d208839081808280098009098391089082827f33133eb4a1a1ab45037c8bdf9adbb2999baf06f20a9c95180dc4ccdcbec5856808839081808280098009098391089082827f588bb66012356dbc9b059ef1d792b563d6c18624dddecc3fe4583fd3551e9b3008839081808280098009098391089082827f71bc3e244e1b92911fe7f53cf523e491fd6ff487d59337a1d92f92668c4f4c3608839081808280098009098391089082827fd1808e2b039fd010c489768f78d7499938ccc0858f3295151787cfe8b7e40be108839081808280098009098391089082827f76978af3ded437cf41b3faa40cd6bcfce94f27f4abcc3ed34be19abd2c4537d008839081808280098009098391089082827f0a9baee798a320b0ca5b1cf888386d1dc12c13b38e10225aa4e9f03069a099f508839081808280098009098391089082827fb79dbf6050a03b16c3ade8d77e11c767d2251af9cdbd6cdf9a8a0ee921b32c7908839081808280098009098391089082827fa74bbcf5067f067faec2cce4b98d130d7927456f5c5f6c00e0f5406a24eb8b1908839081808280098009098391089082827fab7ab080d4c4018bda6ecc8bd67468bc4619ba12f25b0da879a639c758c8855d08839081808280098009098391089082827fe6a5b797c2bba7e9a873b37f5c41adc47765e9be4a1f0e0650e6a24ad226876308839081808280098009098391089082827f6270ae87cf3d82cf9c0b5f428466c429d7b7cbe234cecff39969171af006016c08839081808280098009098391089082827f9951c9f6e76d636b52f7600d979ca9f3b643dfbe9551c83b31542830321b2a6608839081808280098009098391089082827f4119469e44229cc40c4ff555a2b6f6b39961088e741e3c20a3c9b47f130c555008839081808280098009098391089082827f5d795e02bbaf90ff1f384741e5f18f8b644a0080441315d0e5b3c8123452a0b008839081808280098009098391089082827f281e90a515e6409e9177b4f297f8049ce3d4c3659423c48b3fd64e83596ff10108839081808280098009098391089082827f424185c60a21e84970f7d32cacaa2725aa8a844caea7ed760d2b965af1bf3e7d08839081808280098009098391089082827fd96fcbc3960614ea887da609187a5dada2e1b829f23309a6375212cea1f25c0908839081808280098009098391089082827ffde84026d7c294300af18f7712fc3662f43387ae8cf7fdda1f9a810f4b24bcf208839081808280098009098391089082827f3a9d568575846aa6b8a890b3c237fd0447426db878e6e25333b8eb9b386195c108839081808280098009098391089082827f55a2aa32c84a4cae196dd4094b685dd11757470a3be094d98eea73f02452aa3608839081808280098009098391089082827fcbc9481380978d29ebc5b0a8d4481cd2ef654ee800907adb3d38dc2fd9265fab08839081808280098009098391089082827f24e53af71ef06bacb76d3294c11223911e9d177ff09b7009febc484add0beb7408839081808280098009098391089082827fdbd44e16108225766dac3e5fe7acbe9df519bbba97380e5e9437a90658f2139308839081808280098009098391089082827fc6f434863c79013bb2c202331e04bccea2251c1ff6f191dc2afa23e6f6d28e4e08839081808280098009098391089082827f3490eeb39a733c0e8062d87f981ae65a8fccf25c448f4455d27db3915351b06608839081808280098009098391089082827f30b89830ff7ade3558a5361a24869130ce1fcce97211602962e34859525dac4f08839081808280098009098391089082827f29bae21b579d080a75c1694da628d0ecfd83efc9c8468704f410300062f64ca908839081808280098009098391089082827fe326499de0476e719915dd1c661ef4550723d4aee9ee9af224edd208790fce4408839081808280098009098391089082827f8c45208b8baa6f473821415957088c0b7e72a465f460b09ece2d270aee2f184108839081808280098009098391089082827ffe2ad454f451348f26ce2cc7e7914aef3eb96e8f89a4619a1dc7d11f8401c35208839081808280098009098391089082827f0929db368ef2af2d29bca38845325b0b7a820a4889e44b5829bbe1ed47fd4d5208839081808280098009098391089082827f16531d424b0cbaf9abbf2d2acde698462ea4555bf32ccf1bbd26697e905066f608839081808280098009098391089082827ff5c30d247f045ff6d05cf0dd0a49c9823e7a24b0d751d3c721353b96f29d76f608839081808280098009098391089082827f6eb7a3614056c230c6f171370fdd9d1048bb00b2cdd1b2721d11bdda5023f48608839081808280098009098391089082827f0ee9c4621642a272f710908707557498d25a6fdd51866da5d9f0d205355a618908839081808280098009098391089082827f78ca1cb1c7f6c6894d1cf94f327b8763be173151b6b06f99dfc6a944bb5a72f008839081808280098009098391089082827f5d24d0b1b304d05311ce0f274b0d93746a4860ed5cdd8d4348de557ea7a5ee7a08839081808280098009098391089082827f77423dabd1a3cddc8691438fc5891e3fd49ac0f3e21aaf249791bfde1303d2f308839081808280098009098391089082827f0642e8800a48cc04c0168232c6f542396597a67cf395ad622d947e98bb68697a08839081808280098009098391089082827fc1e7d3cbbc4c35b7490647d8402e56d334336943bda91fe2d34ca9727c0e3df508839081808280098009098391089082827f8d6fb1730335204f38f85e408ac861e76f24349ab6ee0469c22e19350bb24fe108839081808280098009098391089082827f67d0faf5f0db32a1b60e13dc4914246b9edac7990fb4990b19aa86815586441a08839081808280098009098391089082827f2605b9b909ded1b04971eae979027c4e0de57f3b6a60d5ed58aba619c34749ce08839081808280098009098391089082827fd276890b2c205db85f000d1f5111ed8f177e279cae3e52862780f04e846228d008839081808280098009098391089082827f2ac5905f9450a21ef6905ed5951a91b3730e3a2e2d62b50bdeb810015d50376b08839081808280098009098391089082827f7a366839f0291ca54da674ac3f0e1e9aa8b687ba533926cb40268039e57b967a08839081808280098009098391089082827f67ab0f3466989c3dbbe209c37ec272ba83984ba6e445be6d472b63e3ca7270e308839081808280098009098391089082827f0e786007d0ce7e28a90e31d3263887d40c556dec88fcb8b56bc9e9c05ecc0c2908839081808280098009098391089082827f0b814ed99bd00eca389b0022663dbfddfbfa15e321c19abcf1eaf9556075fb6808839081808280098009098391089082827f65c0321ba26fcee4fdc35b4999b78ceb54dcaf9fec2e3bdea98e9f82925c093208839081808280098009098391089082827fab2d2a929601f9c3520e0b14aaa6ba9f1e79821a5b768919670a4ea970722bf408839081808280098009098391089082827fcdd2e0744d4af1a81918de69ec12128a5871367303ff83ed764771cbbdf6502308839081808280098009098391089082827f74527d0c0868f2ec628086b874fa66a7347d3d3b918d2e07a5f33e1067e8ac5808839081808280098009098391089082827f1c6bf6ac0314caead23e357bfcbbaa17d670672ae3a475f80934c716f10aca2508839081808280098009098391089082827f3c4007e286f8dc7efd5d0eeb0e95d7aa6589361d128a0cccb17b554c851a643208839081808280098009098391089082827fae468a86a5a7db7c763a053eb09ac1a02809ce095258c88101ee319e12b0697e08839081808280098009098391089082827f9333e3d052b7c77fcac1eb366f610f6f97852242b1317a87b80f3bbc5c8c2d1d08839081808280098009098391089082827f52ec1d675cf5353153f6b628414783ca6b7fc0fe01948ca206daad712296e39508839081808280098009098391089082827f13ceeeb301572b4991076750e11ea7e7fcbfee454d90dc1763989004a1894f9308839081808280098009098391089082827f8505737e7e94939a08d8cda10b6fbbbf879b2141ae7eabc30fcd22405135fe6408839081808280098009098391089082827f6127db7ac5200a212092b66ec2bfc63653f4dc8ac66c76008fef885258a258b508839081808280098009098391089082827f12692a7d808f44e31d628dbcfea377eb073fb918d7beb8136ea47f8cf094c88c08839081808280098009098391089082827f260e384b1268e3a347c91d6987fd280fa0a275541a7c5be34bf126af35c962e008839081808280098009098391089082827fd88c3b01966d90e713aee8d482ceaa6925311d2342e1a5aca4fcd2f44b6daddc08839081808280098009098391089082827fb87e868affd91b078a87fa75ac9332a6cf23587d94e20c3262db5e91f30bf04b08839081808280098009098391089082827fb5ba5f8acad1a950a3bbf2201055cd3ea27056c0c53f0c4c97f33cda8dbfe90908839081808280098009098391089082827f59ca814b49e00d7b3118c53a2986ded128584acd7428735e08ade6661c457f7508839081808280098009098391089082827f0fc4c0bea813a223fd510c07f7bbe337badd4bcf28649a0d378970c2a15b3aa508839081808280098009098391089082827f0053f1ea6dd60e7a6db09a00be77549ff3d4ee3737be7fb42052ae1321f667c308839081808280098009098391089082827feb937077bb10c8fe38716d4e38edc1f9e7b18c6414fef85fe7e9c5567baa4a0408839081808280098009098391089082827fbacb14c0f1508d828f7fd048d716b8044aec7f0fb48e85e717bf532db972520708839081808280098009098391089082827f4ca0abb8beb7cff572a0c1e6f58e080e1bb243d497a3e74538442a4555ad40be08839081808280098009098391089082827fda9eefd411e590d7e44592cce298af87b2c62aa3cc8bb137aa99ca8d4aa551b508839081808280098009098391089082827f153dae43cef763e7a2fc9846f09a2973b0ad9c35894c220699bcc2954501c6bd08839081808280098009098391089082827fd4ed2a09375813b4fb504c7a9ba13110bdd8549a47349db82c15a434c090e87b08839081808280098009098391089082827f0063a5c4c9c12dcf4bae72c69f3a225664469503d61d9eae5d9553bfb006095b08839081808280098009098391089082827fdc8a4d35ad28e59dd3713b45985cd3b70e37ccc2be42086f1ea078fe2dc9d82d08839081808280098009098391089082827f486ba219308f0c847b22fcb4449f8855192536c01b8057904e81c1c7814f483b08839081808280098009098391089082827f34d9604140a1ac9fdb204285b9fe1b303c281af2fc5fb362f6577282b423bcf308839081808280098009098391089082827fc1681959ec4bc3656911db2b2f56aa4db709c26f1a0a25c879286e37f437465d08839081808280098009098391089082827ffcd849f3b5f9e4368af75619fb27f2e335adbb9b44988f17c4d389fa751ad47a08839081808280098009098391089082827ff5f7fc22ad64c8e7c1e005110e13f4f1c6b1f8f8cc59000db0e3bb38f99554a508839081808280098009098391089082827fa9133b8a20fbae4633ec5f82cb47a38ae1877d12d1febb23982c7c808aa5317508839081808280098009098391089082827ff4827c5c7b61141cc31b75984bb3ed16ed579e5b72e32a1289b63ab55eaf8c1208839081808280098009098391089082827fcca361819ffefe3e50fe34c91a322c9405f4e5a168c1fc0a0a1883993e32c9f408839081808280098009098391089082827f6656088842bfc9e325a532784d3362cecfa86f9c7b208a6b499836ebe48ff15708839081808280098009098391089082827f00129c7cd00e42ed05a37dbceb80d47b65e1d750ef2148278a54723fdf42c4cc08839081808280098009098391089082827fa85b235631b786f85cd46f7768f6c71ae004ad267ae59bdf929ada149b19588808839081808280098009098391089082827f34df65a82686be09c5b237911abf237a9887c1a418f279ac79b446d7d311f5ea08839081808280098009098391089082827f815a850c3989df9ca6231e0bdd9916fc0e076f2c6c7f0f260a846d0179f9c32d08839081808280098009098391089082827f50fb0940848a67aee83d348421fadd79aefc7a2adabeec6e64904ebe1bf63e7d08839081808280098009098391089082827fbab63a16273599f8b66895461e62a19ff0d103693be771d93e3691bba89cdd8d08839081808280098009098391089082827f6931a091756e0bc709ebecfffba5038634c5b3d5d0c5876dd72aac67452db8a208839081808280098009098391089082827f55559b8bb79db8809c46ee627f1b5ce1d8e6d89bf94a9987a1407759d1ba896308839081808280098009098391089082827fa9a1a11b2979018cb155914d09f1df19b7ffec241e8b2487b6f6272a56a44a0a08839081808280098009098391089082827ff83293400e7bccea4bb86dcb0d5ca57fa2466e13a572d7d3531c6fa491cb0f1b08839081808280098009098391089082827fb7cb5742b6bc5339624d3568a33c21f31b877f8396972582028da999abf249f208839081808280098009098391089082827ff56efb400f8500b5c5bf811c65c86c7ed2e965f14f1a69bca436c0c60b79f46508839081808280098009098391089082827fd7c4427998d9c440f849dcd75b7157996eaad1b9a1d58cc2441931300e26eb2208839081808280098009098391089082827fca5ed18ad53e33fdc3ae8cf353ff3f6dd315f60060442b74f6b614b24ebd4cc308839081808280098009098391089082827f9ad3e9376c97b194a0fbf43e22a3616981d777365c765ead09a1d033fdf536b708839081808280098009098391089082827fc6daeff5769a06b26fe3b8fef30df07b1387373a7814cef364fe1d6059eaf54a08839081808280098009098391089082827fc20a78398345c6b8cf439643dab96223bf879c302648293eaf496fee5c978c6608839081808280098009098391089082827f589ca65b6cf0e90653c06dddc057dc61ba2839974569051c98b43e8618716efb08839081808280098009098391089082827f83064161f127d8c59fc73625957e21630dc6dc99e5443f6ce37ecd6bf28e69b708839081808280098009098391089082827f46d0ba662b50100b9a3af52052f68932feec1d12290b2033c4f49148893d8ba308839081808280098009098391089082827f18dd55b4a83a53f2ee578eb3e6d26f594824d44670fc3f4de80642344d15c09a08839081808280098009098391089082827f9fb5b594f48bc58b345ab90ded705920a7274b8e070eee8ce8cf90c72c3604b608839081808280098009098391089082827f1901d8f4f2c8449128e00663978f2050f2eb1cd6acb60d9d09c57c5d46ee54fe08839081808280098009098391089082827f5ec56789beab24ef7ee32f594d5fc561ec59dfeb93606dc7dcc6fe65133a7db408839081808280098009098391089082827f01c0b2cbe4fa9877a3d08eb67c510e8630da0a8beda94a6d9283e6f70d268bc508839081808280098009098391089082827f0b1d85acd9031a9107350eed946a25734e974799c5ba7cff13b15a5a623a25f008839081808280098009098391089082827f204497d1d359552905a2fe655f3d6f94926ea92d12cdaa6556ec26362f239f6408839081808280098009098391089082827fe075f7edc6631a8d7ffe33019f44fc91f286236d5a5f90f16de4791b72a2a5f008839081808280098009098391089082827f243f46e353354256ab8fe0ca4e9230dfc330bc163e602dfeaf307c1d1a7264b908839081808280098009098391089082827fd448ae5e09625fa1fcfd732fc9cd8f06e4c33b81f0a9240c83da56f41e9ecceb08839081808280098009098391089082827f2f312eef69a33d9fa753c08840275692a03432b3e6da67f9c59b9f9f4971cd5608839081808280098009098391089082827f5f333996af231bd5a293137da91801e191a6f24eb532ad1a7e6e9a2ad0efbc0008839081808280098009098391089082827fa8f771e0383a832dc8e2eaa8efabda300947acaf0684fabddf8b4abb0abd8a6208839081808280098009098391089082827f9ff0b3d7a4643596f651b70c1963cc4fa6c46018d78f05cb2c5f187e25df83a908839081808280098009098391089082827f9c373b704838325648273734dcdf962d7c156f431f70380ba4855832c4a238b808839081808280098009098391089082827fea2afa02604b8afeeb570f48a0e97a5e6bfe9613394b9a6b0026ecd6cec8c33a08839081808280098009098391089082827f68892258cd8eb43b71caa6d6837ec9959bfdfd72f25c9005ebaffc4011f8a7bf08839081808280098009098391089082827ff2824f561f6f82e3c1232836b0d268fa3b1b5489edd39a5fe1503bfc7ca91f4908839081808280098009098391089082827f164eda75fda2861f9d812f24e37ac938844fbe383c243b32b9f66ae2e76be71908839081808280098009098391089082827ff0a6fc431f5bf0dd1cca93b8b65b3f72c91f0693e2c74be9243b15abb31afcc008839081808280098009098391089082827fe68db66ba891ef0cd527f09ec6fff3ec0a269cf3d891a35ec13c902f70334b4f08839081808280098009098391089082827f3a44a5b102f7883a2b8630a3cae6e6db2e6e483bb7cfeb3492cbd91793ef598e08839081808280098009098391089082827f43939fe8ef789acb33cbf129ba8a3aa1bd61510a178022a05177c9c5a1c59bf108839081808280098009098391089082827f936fe3b66dfda1bc5a7aae241b4db442858bd720c1d579c0c869f273cd55d77408839081808280098009098391089082827f3490fcaa8ffa37f35dc67ae006e81352c7103945417b8e4b142afcaefa344b8508839081808280098009098391089082827fcae66096cff344caca53ffe0e58aafeb468bd174f00d8abc425b2099c088187408839081808280098009098391089082827fc7d05783a41bc14f3c9a45384b6d5e2547c5b6a224c8316910b208f2718a70ab08839081808280098009098391089082827f5ac6b9ba94040d5692b865b6677b60ef3201b5c2121699f70beb9f9b2528a02608839081808280098009098391089082827fa902a3d4d9ecbfb9b2c76fddf780554bf93cad97b244e805d3adb94e1816290008839081808280098009098391089082827fe9df91ffeeb086a4d26041c29dac6fca1d56a4d022fe34b38831267395b98d2708839081808280098009098391089082827f862646f851d91a8840ad9ee711f12ec13b3e8f980ff5ef5ee43ca4520d57def708839081808280098009098391089082827f30b7381c9725b9db07816baf8524943a79cea135807c84cce0833485c11e0c2e08839081808280098009098391089082827f96afc10c5cedaddbda99df79387397c9be74a5b50f3a0c04ccb68d4e0f3a989f08839081808280098009098391089082827f3543da80d10da251c548776fe907c4ef89993d62e0062ae5c0496fcb851c366108839081808280098009098391089082827fe5140fe26d8b008430fccd50a68e3e11c1163d63b6d8b7cc40bc6f3c1d0b1b0608839081808280098009098391089082827ffefdf1872e4475e8bbb0ef6fab7f561bff121314695c433bd4c29ec118060c9608839081808280098009098391089082827f6bb8c9f3d57b18e002df059db1e6a5d42ad566f153f18460774f68ac2650940008839081808280098009098391089082827f5415122d50b26f4fab5784004c56cf03f128f825ad2236f4b3d51f74737bd97308839081808280098009098391089082827f00e115c4a98efae6a3a5ecc873b0cef63ccd5b515710a3ab03ec52218f784dc908839081808280098009098391089082827fda7d525427bad87b88238657c21331245578bc76aa6240b7f972382537a202ab08839081808280098009098391089082827f83332e8b34505b83010270dc795290a2f515b8f89c163acecdf4799df04c62f808839081808280098009098391089082827fb09ecb6033d1a065f17a61066cd737d0c3c5873b51c3ab0a285e26939e62aa1808839081808280098009098391089082827f24e65c718938c2b937378e7435332174329730bde85a4185e37875824eb4985908839081808280098009098391089082827f68e41430ccd41cc5e92a9f9acd2e955c1385b9f5ed8d3f133d767429484a8eba08839081808280098009098391089082827fc038fe9d0125ab8be54545276f841274e414c596ed4c9eaa6919604603d1ffa908839081808280098009098391089082827f23248698612cd8e83234fcf5db9b6b225f4b0ba78d72ef13ea1edff5f0fb029808839081808280098009098391089082827fd2a9fa3d39c1ba91eefa666a1db71c6e0e4e3b707626b0197a4e59e7110cf0d408839081808280098009098391089082827fc28931ee7dfa02b62872e0d937ba3dc5c637118273a1f1f0c4fc880905c82efc08839081808280098009098391089082827f01cd399556445e3d7b201d6c5e56a5794e60be2cfd9a4643e7ead79bb4f60f7908839081808280098009098391089082827fac855cc58d5fbb0dff91a79683eb0e914c1b7d8d0a540d416838a89f83a8312f08839081808280098009098391089082827ff7798af7ccf36b836705849f7dd40328bf9346657255b431446ec75a6817181608839081808280098009098391089082827fe52a24c92d3f067bf551eeaf98c62ba525e84882d7adad835fad8de72986b2b108839081808280098009098391089082827fffc8682759a2bf1dd67c87a77c285467801f1c44fd78fa4eb5957a4832c9d72d08839081808280098009098391089082827f1482ac3e7e4f321627850d95a13942aea6d2923402b913046856ff7e8aaf9aff08839081808280098009098391089082827f17332b4c7aac2a07ccfe954de7ad22ccf6fcb4c5fa15c130ed22a40ae9398f4708839081808280098009098391089082827fd4be0546013f84a0d1e118b37589723b58e323983263616d1b036f8b3fdd858308839081808280098009098391089082827fa64ec737d31dddf939b184438ccdd3e1d3e667572857cd6c9c31a0d1d9b7b08508839081808280098009098391089082827f8ad12fbc74117cff4743d674539c86548c6758710a07a6abe3715e4b53526d3408839081808280098009098391089082827f15a16435a2300b27a337561401f06682ba85019aa0af61b264a1177d38b5c13c08839081808280098009098391089082827f22616f306e76352293a22ab6ee15509d9b108d4136b32fa7f9ed259793f392a108839081808280098009098391089082827f519727b25560caf00ce0d3f911bd4356f907160ab5186da10a629c7ccae1851e08839081808280098009098391089082827fcff39e77928ce9310118d50e29bc87e7f78b53ad51366359aa17f07902ae639208839081808280098009098391089082827f17dead3bfa1968c744118023dead77cdbee22c5b7c2414f5a6bdf82fd94cf3ad08839081808280098009098391089082827f2bef0f8b22a1cfb90100f4a552a9d02b772130123de8144a00c4d57497e1d7f408839081808280098009098391089082827fbf5188713fef90b31c35243f92cfa4331ab076e30e24b355c79b01f41d152a1108839081808280098009098391089082827f3baadd2fd92e3e12fb371be0578941dc0a108fbca0a7d81b88316fb94d6b4dfe08839081808280098009098391089082827fd4f955742e20a28d38611bf9fc4a478c97b673a7cd40d0113a58a1efe338d9aa08839081808280098009098391089082827f3c1c3fe9a5f7ccd54ad5a51a224b3f94775266d19c3733017e4920d7391ad64508839081808280098009098391089082827f6372df6148abeed66fda5461779a9651130c6c525df733852bcd929016768a7a08839081808280098009098391089082827f6d098e848fb853f95adb5a6364b5ab33c79fb08877f2cf3e0e160d9fcb3ebcc508839081808280098009098391089082827f48c5fc90f27431fabfe496dfba14bb0dba71141eb5472a365fd13023f4fe629608839081808280098009098391089082827fbb988dfc0c4dfe53999bd34840adcb63fdbf501ccd622ca2ddf5064ad8cdebf408839081808280098009098391089082827f25b068c942724c424ed5851c9575c22752c9bd25f91ebfa589de3d88ee7627f908839081808280098009098391089082827fed98a1931e361add218de11ff7879bd7114cda19c24ddbe15b3b0190ce01e1aa08839081808280098009098391089082827fc80b5a7d63f6c43542ad612023d3ffd6c684ce2eab837180addcb4decf51854408839081808280098009098391089082827fe2ef24bf47c5203118c6ff96657dd3c6fdff7212d5c798d826455de77b4b70cd08839081808280098009098391089082827f907da812fd5a8375587e4860f87691d0a8d61d454c507d09e5562e1a5d0fcc7608839081808280098009098391089082827fc459abbc62bc6070cacdff597e97990de56edc51cc6643afb0f6789fef1bad6308839081808280098009098391089082827f38d61f5e566855d70d36ef0f0f1fefcd7c829bdd60d95e0ef1fb5b98856280a408839081808280098009098391089082827f13218626665c420d3aa2b0fa49224a3dce8e08b8b56f8851bd9cb5e25cb3042d08839081808280098009098391089082827f6f685fb152dba21b4d02422e237e246df73d7d711ae6d7d33983bae0f873e31008839081808280098009098391089082827f5ade34719e2498dde70e4571c40474475a4af706a3cb82ac18a7fa44c22d1c4708839081808280098009098391089082827f8a0c3dc7a496adca059cb95d9b173812a00f3c4d435e0b9e8116e0c4b5f56acb08839081808280098009098391089082827f196bc98252f63169ed79073ee091a0e8ed0b5af51017da143940c00bdb86370908839081808280098009098391089082827fd979bf70695d93f8efb552a413701918afec9e12dfe213f4d0c27cfa68fad6c208839081808280098009098391089082827fb803072d02f54d237a3c6c4cc18eda6dce87a03c6819df54e4ed8aed6dc56d4608839081808280098009098391089082827f1efcda9d986cddcf431af4d59c6a7709d650885b7886cba70f0e7cd92b331cdc08839081808280098009098391089082827fd3ca5f7859b82ac50b63da06d43aa68a6b685f0a60397638bbea173b3f60419208839081808280098009098391089082827fa59d392c0667316ad37a06be2d51aabe9e79bdef0013bc109985648a14c7e41f08839081808280098009098391089082827fac2f5f0d2146791b396e2bed6cf15a20bc22cc4c8cf7dd4b3514ac00148dd0a708839081808280098009098391089082827f17a993a6af068d72bc36f0e814d29fef3f97d7a72aa963889b16a8457409861a08839081808280098009098391089082827f6f1bf99686550e0396f7f4e2df6fdaa090fbc272c8c76eb32a3c6791de5a07b508839081808280098009098391089082827f8234d705e1ecdc59cc6ed40749069d4b45e63deb49b5b7d7f527abd31c072b1b08839081808280098009098391089082827f6fe929a1fd6aacba5c4012c45dd727d2c816119567450003913d882cb97bc47e08839081808280098009098391089082827fad5371215f2aba49026b2e48739c11b4d8ffbb24dd4a6e41b9763862af96787a08839081808280098009098391089082827fd0e704566c49e1a11edc2c128b2e07f36dc0c755468268f8fe4c4859b9fa595b08839081808280098009098391089082827f263e1195090d00be1d8fb37de17ccf3b66d180645efa0d831865cfaa8797769e08839081808280098009098391089082827fe65c090eebde2cfa7f9c92cf75641c7683fb8e81f4a48f5b7a9c7eb26a85029f08839081808280098009098391089082827fa18971781c6855f6a9752912780bb9b719c14a677a4c6393d62d6e046b97a2ac08839081808280098009098391089082827ff6fc1ef1bca8bec055cc66edecc5dc99030fe78311a3f21d8cd624df4f89e62508839081808280098009098391089082827f824e4e2838501516d3296542cb47a59a1ca4326e947c9c874d88dccc8e37b99a08839081808280098009098391089082827f3cd5a9e7353a50e454c9c1381b556b543897cc89153c3e3749f2021d8237226308839081808280098009098391089082827fb4bcedbd54d0c917a315cc7ca785e3c5995abbeeb3deb3ebaf02c7a9bf6cc83f08839081808280098009098391089082827f1f7476211105b3039cef009c51155ae93526c53a74973ecfce40754b3df1052108839081808280098009098391089082827f58aefbd978440c94b4b9fbd36e00e6e36caeacf82b0da0a6161d34c541a5a6e308839081808280098009098391089082827fc22cd6d61be780a33c77677bc6ba40307b597ed981db57cb485313eec2a5a49708839081808280098009098391089082827fd9ffc4fe0dc5f835c8dcdc1e60b8f0b1637f32a809175371b94a057272b0748d08839081808280098009098391089082827ff6a5268541bc4c64ad0ade8f55dda3492604857a71c923662a214dd7e9c20c1008839081808280098009098391089082826000088390818082800980090983910860205260005260406000f3"; +function deployHasher(signer) { + return signer.sendTransaction({ data: hasherBytecode }); +} + const INDEX_DB_ERROR = "A mutation operation was attempted on a database that did not allow mutations."; class IndexedDB { dbExists; @@ -189142,17 +191943,19 @@ class IndexedDB { Object.values(db.objectStoreNames).forEach((value) => { db.deleteObjectStore(value); }); - [{ name: "keyval" }, ...stores || []].forEach(({ name, keyPath, indexes }) => { - const store = db.createObjectStore(name, { - keyPath, - autoIncrement: true - }); - if (Array.isArray(indexes)) { - indexes.forEach(({ name: name2, unique = false }) => { - store.createIndex(name2, name2, { unique }); + [{ name: "keyval" }, ...stores || []].forEach( + ({ name, keyPath, indexes }) => { + const store = db.createObjectStore(name, { + keyPath, + autoIncrement: true }); + if (Array.isArray(indexes)) { + indexes.forEach(({ name: name2, unique = false }) => { + store.createIndex(name2, name2, { unique }); + }); + } } - }); + ); } }; this.dbName = dbName; @@ -189213,12 +192016,20 @@ class IndexedDB { return []; } try { - return await this.db.getAllFromIndex(storeName, indexName, key, count); + return await this.db.getAllFromIndex( + storeName, + indexName, + key, + count + ); } catch (err) { throw new Error(`Method getAllFromIndex has error: ${err.message}`); } } - async getItem({ storeName, key }) { + async getItem({ + storeName, + key + }) { await this.initDB(); if (!this.db) { return; @@ -189230,7 +192041,11 @@ class IndexedDB { throw new Error(`Method getItem has error: ${err.message}`); } } - async addItem({ storeName, data, key = "" }) { + async addItem({ + storeName, + data, + key = "" + }) { await this.initDB(); if (!this.db) { return; @@ -189245,7 +192060,11 @@ class IndexedDB { throw new Error(`Method addItem has error: ${err.message}`); } } - async putItem({ storeName, data, key }) { + async putItem({ + storeName, + data, + key + }) { await this.initDB(); if (!this.db) { return; @@ -189293,7 +192112,10 @@ class IndexedDB { delValue(key) { return this.deleteItem({ storeName: "keyval", key }); } - async clearStore({ storeName, mode = "readwrite" }) { + async clearStore({ + storeName, + mode = "readwrite" + }) { await this.initDB(); if (!this.db) { return; @@ -189319,7 +192141,9 @@ class IndexedDB { await tx.objectStore(storeName).add(data); await tx.done; } catch (err) { - throw new Error(`Method createTransactions has error: ${err.message}`); + throw new Error( + `Method createTransactions has error: ${err.message}` + ); } } async createMultipleTransactions({ @@ -189340,7 +192164,9 @@ class IndexedDB { } } } catch (err) { - throw new Error(`Method createMultipleTransactions has error: ${err.message}`); + throw new Error( + `Method createMultipleTransactions has error: ${err.message}` + ); } } } @@ -189389,9 +192215,9 @@ async function getIndexedDB(netId) { } ]; const config = getConfig(netId); - const { tokens, nativeCurrency } = config; + const { tokens, nativeCurrency, registryContract, governanceContract } = config; const stores = [...defaultState]; - if (netId === NetId.MAINNET) { + if (registryContract) { stores.push({ name: `registered_${netId}`, keyPath: "ensName", @@ -189403,6 +192229,8 @@ async function getIndexedDB(netId) { } ] }); + } + if (governanceContract) { stores.push({ name: `governance_${netId}`, keyPath: "eid", @@ -189467,6 +192295,13 @@ async function getIndexedDB(netId) { return idb; } +async function fetchIp(ipEcho) { + return await fetchData(ipEcho, { + method: "GET", + timeout: 3e4 + }); +} + class Mimc { sponge; hash; @@ -189476,7 +192311,9 @@ class Mimc { } async initMimc() { this.sponge = await mimcsponge_buildMimcSponge(); - this.hash = (left, right) => this.sponge?.F.toString(this.sponge?.multiHash([BigInt(left), BigInt(right)])); + this.hash = (left, right) => this.sponge?.F.toString( + this.sponge?.multiHash([BigInt(left), BigInt(right)]) + ); } async getHash() { await this.mimcPromise; @@ -189525,42 +192362,63 @@ class MerkleTreeService { console.log("Using merkleWorker\n"); try { if (isNode) { - const merkleWorkerPromise = new Promise((resolve, reject) => { - const worker = new external_worker_threads_.Worker(this.merkleWorkerPath, { - workerData: { + const merkleWorkerPromise = new Promise( + (resolve, reject) => { + const worker = new external_worker_threads_.Worker( + this.merkleWorkerPath, + { + workerData: { + merkleTreeHeight: this.merkleTreeHeight, + elements: events, + zeroElement: this.emptyElement + } + } + ); + worker.on("message", resolve); + worker.on("error", reject); + worker.on("exit", (code) => { + if (code !== 0) { + reject( + new Error( + `Worker stopped with exit code ${code}` + ) + ); + } + }); + } + ); + return fixed_merkle_tree_lib.MerkleTree.deserialize( + JSON.parse(await merkleWorkerPromise), + hashFunction + ); + } else { + const merkleWorkerPromise = new Promise( + (resolve, reject) => { + const worker = new Worker( + this.merkleWorkerPath + ); + worker.onmessage = (e) => { + resolve(e.data); + }; + worker.onerror = (e) => { + reject(e); + }; + worker.postMessage({ merkleTreeHeight: this.merkleTreeHeight, elements: events, zeroElement: this.emptyElement - } - }); - worker.on("message", resolve); - worker.on("error", reject); - worker.on("exit", (code) => { - if (code !== 0) { - reject(new Error(`Worker stopped with exit code ${code}`)); - } - }); - }); - return fixed_merkle_tree_lib.MerkleTree.deserialize(JSON.parse(await merkleWorkerPromise), hashFunction); - } else { - const merkleWorkerPromise = new Promise((resolve, reject) => { - const worker = new Worker(this.merkleWorkerPath); - worker.onmessage = (e) => { - resolve(e.data); - }; - worker.onerror = (e) => { - reject(e); - }; - worker.postMessage({ - merkleTreeHeight: this.merkleTreeHeight, - elements: events, - zeroElement: this.emptyElement - }); - }); - return fixed_merkle_tree_lib.MerkleTree.deserialize(JSON.parse(await merkleWorkerPromise), hashFunction); + }); + } + ); + return fixed_merkle_tree_lib.MerkleTree.deserialize( + JSON.parse(await merkleWorkerPromise), + hashFunction + ); } } catch (err) { - console.log("merkleWorker failed, falling back to synchronous merkle tree"); + console.log( + "merkleWorker failed, falling back to synchronous merkle tree" + ); console.log(err); } } @@ -189569,50 +192427,74 @@ class MerkleTreeService { hashFunction }); } - async createPartialTree({ edge, elements }) { + async createPartialTree({ + edge, + elements + }) { const { hash: hashFunction } = await mimc.getHash(); if (this.merkleWorkerPath) { console.log("Using merkleWorker\n"); try { if (isNode) { - const merkleWorkerPromise = new Promise((resolve, reject) => { - const worker = new external_worker_threads_.Worker(this.merkleWorkerPath, { - workerData: { + const merkleWorkerPromise = new Promise( + (resolve, reject) => { + const worker = new external_worker_threads_.Worker( + this.merkleWorkerPath, + { + workerData: { + merkleTreeHeight: this.merkleTreeHeight, + edge, + elements, + zeroElement: this.emptyElement + } + } + ); + worker.on("message", resolve); + worker.on("error", reject); + worker.on("exit", (code) => { + if (code !== 0) { + reject( + new Error( + `Worker stopped with exit code ${code}` + ) + ); + } + }); + } + ); + return fixed_merkle_tree_lib.PartialMerkleTree.deserialize( + JSON.parse(await merkleWorkerPromise), + hashFunction + ); + } else { + const merkleWorkerPromise = new Promise( + (resolve, reject) => { + const worker = new Worker( + this.merkleWorkerPath + ); + worker.onmessage = (e) => { + resolve(e.data); + }; + worker.onerror = (e) => { + reject(e); + }; + worker.postMessage({ merkleTreeHeight: this.merkleTreeHeight, edge, elements, zeroElement: this.emptyElement - } - }); - worker.on("message", resolve); - worker.on("error", reject); - worker.on("exit", (code) => { - if (code !== 0) { - reject(new Error(`Worker stopped with exit code ${code}`)); - } - }); - }); - return fixed_merkle_tree_lib.PartialMerkleTree.deserialize(JSON.parse(await merkleWorkerPromise), hashFunction); - } else { - const merkleWorkerPromise = new Promise((resolve, reject) => { - const worker = new Worker(this.merkleWorkerPath); - worker.onmessage = (e) => { - resolve(e.data); - }; - worker.onerror = (e) => { - reject(e); - }; - worker.postMessage({ - merkleTreeHeight: this.merkleTreeHeight, - edge, - elements, - zeroElement: this.emptyElement - }); - }); - return fixed_merkle_tree_lib.PartialMerkleTree.deserialize(JSON.parse(await merkleWorkerPromise), hashFunction); + }); + } + ); + return fixed_merkle_tree_lib.PartialMerkleTree.deserialize( + JSON.parse(await merkleWorkerPromise), + hashFunction + ); } } catch (err) { - console.log("merkleWorker failed, falling back to synchronous merkle tree"); + console.log( + "merkleWorker failed, falling back to synchronous merkle tree" + ); console.log(err); } } @@ -189628,8 +192510,12 @@ Creating deposit tree for ${this.netId} ${this.amount} ${this.currency.toUpperCa ` ); const timeStart = Date.now(); - const tree = await this.createTree(events.map(({ commitment }) => commitment)); - const isKnownRoot = await this.Tornado.isKnownRoot(toFixedHex(BigInt(tree.root))); + const tree = await this.createTree( + events.map(({ commitment }) => commitment) + ); + const isKnownRoot = await this.Tornado.isKnownRoot( + toFixedHex(BigInt(tree.root)) + ); if (!isKnownRoot) { const errMsg = `Deposit Event ${this.netId} ${this.amount} ${this.currency} is invalid`; throw new Error(errMsg); @@ -189663,6 +192549,172 @@ async function multicall(Multicall2, calls) { return res; } +const permit2Address = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; +async function getPermitSignature({ + Token, + signer, + spender, + value, + nonce, + deadline +}) { + const sigSigner = signer || Token.runner; + const provider = sigSigner.provider; + const [name, lastNonce, { chainId }] = await Promise.all([ + Token.name(), + Token.nonces(sigSigner.address), + provider.getNetwork() + ]); + const DOMAIN_SEPARATOR = { + name, + version: "1", + chainId, + verifyingContract: Token.target + }; + const PERMIT_TYPE = { + Permit: [ + { name: "owner", type: "address" }, + { name: "spender", type: "address" }, + { name: "value", type: "uint256" }, + { name: "nonce", type: "uint256" }, + { name: "deadline", type: "uint256" } + ] + }; + return Signature.from( + await sigSigner.signTypedData(DOMAIN_SEPARATOR, PERMIT_TYPE, { + owner: sigSigner.address, + spender, + value, + nonce: nonce || lastNonce, + deadline: deadline || MaxUint256 + }) + ); +} +async function getPermitCommitmentsSignature({ + PermitTornado: PermitTornado2, + Token, + signer, + denomination, + commitments, + nonce +}) { + const value = BigInt(commitments.length) * denomination; + const commitmentsHash = solidityPackedKeccak256( + ["bytes32[]"], + [commitments] + ); + return await getPermitSignature({ + Token, + signer, + spender: PermitTornado2.target, + value, + nonce, + deadline: BigInt(commitmentsHash) + }); +} +async function getPermit2Signature({ + Token, + signer, + spender, + value: amount, + nonce, + deadline, + witness +}) { + const sigSigner = signer || Token.runner; + const provider = sigSigner.provider; + const domain = { + name: "Permit2", + chainId: (await provider.getNetwork()).chainId, + verifyingContract: permit2Address + }; + const types = !witness ? { + PermitTransferFrom: [ + { name: "permitted", type: "TokenPermissions" }, + { name: "spender", type: "address" }, + { name: "nonce", type: "uint256" }, + { name: "deadline", type: "uint256" } + ], + TokenPermissions: [ + { name: "token", type: "address" }, + { name: "amount", type: "uint256" } + ] + } : { + PermitWitnessTransferFrom: [ + { name: "permitted", type: "TokenPermissions" }, + { name: "spender", type: "address" }, + { name: "nonce", type: "uint256" }, + { name: "deadline", type: "uint256" }, + { name: "witness", type: witness.witnessTypeName } + ], + TokenPermissions: [ + { name: "token", type: "address" }, + { name: "amount", type: "uint256" } + ], + ...witness.witnessType + }; + const values = { + permitted: { + token: Token.target, + amount + }, + spender, + // Sorted nonce are not required for Permit2 + nonce: nonce || rBigInt(16), + deadline: deadline || MaxUint256 + }; + if (witness) { + values.witness = witness.witness; + } + const hash = new TypedDataEncoder(types).hash(values); + const signature = Signature.from( + await sigSigner.signTypedData(domain, types, values) + ); + return { + domain, + types, + values, + hash, + signature + }; +} +async function getPermit2CommitmentsSignature({ + PermitTornado: PermitTornado2, + Token, + signer, + denomination, + commitments, + nonce, + deadline +}) { + const value = BigInt(commitments.length) * denomination; + const commitmentsHash = solidityPackedKeccak256( + ["bytes32[]"], + [commitments] + ); + return await getPermit2Signature({ + Token, + signer, + spender: PermitTornado2.target, + value, + nonce, + deadline, + witness: { + witnessTypeName: "PermitCommitments", + witnessType: { + PermitCommitments: [ + { name: "instance", type: "address" }, + { name: "commitmentsHash", type: "bytes32" } + ] + }, + witness: { + instance: PermitTornado2.target, + commitmentsHash + } + } + }); +} + class TokenPriceOracle { oracle; multicall; @@ -189683,7 +192735,10 @@ class TokenPriceOracle { })); } buildStable(stablecoinAddress) { - const stablecoin = dist_ERC20_factory.connect(stablecoinAddress, this.provider); + const stablecoin = dist_ERC20_factory.connect( + stablecoinAddress, + this.provider + ); return [ { contract: stablecoin, @@ -189705,16 +192760,23 @@ class TokenPriceOracle { const price = await this.oracle.getRateToEth(tokenAddress, true); return price * BigInt(10 ** decimals) / BigInt(10 ** 18); } catch (err) { - console.log(`Failed to fetch oracle price for ${tokenAddress}, will use fallback price ${this.fallbackPrice}`); + console.log( + `Failed to fetch oracle price for ${tokenAddress}, will use fallback price ${this.fallbackPrice}` + ); console.log(err); return this.fallbackPrice; } } async fetchPrices(tokens) { if (!this.oracle) { - return new Promise((resolve) => resolve(tokens.map(() => this.fallbackPrice))); + return new Promise( + (resolve) => resolve(tokens.map(() => this.fallbackPrice)) + ); } - const prices = await multicall(this.multicall, this.buildCalls(tokens)); + const prices = await multicall( + this.multicall, + this.buildCalls(tokens) + ); return prices.map((price, index) => { if (!price) { price = this.fallbackPrice; @@ -189724,9 +192786,14 @@ class TokenPriceOracle { } async fetchEthUSD(stablecoinAddress) { if (!this.oracle) { - return new Promise((resolve) => resolve(10 ** 18 / Number(this.fallbackPrice))); + return new Promise( + (resolve) => resolve(10 ** 18 / Number(this.fallbackPrice)) + ); } - const [decimals, price] = await multicall(this.multicall, this.buildStable(stablecoinAddress)); + const [decimals, price] = await multicall( + this.multicall, + this.buildStable(stablecoinAddress) + ); const ethPrice = (price || this.fallbackPrice) * BigInt(10n ** decimals) / BigInt(10 ** 18); return 1 / Number(formatEther(ethPrice)); } @@ -189770,7 +192837,10 @@ async function getTokenBalances({ ...tokenCalls.length ? tokenCalls : [] ]); const ethResults = multicallResults[0]; - const tokenResults = multicallResults.slice(1).length ? chunk(multicallResults.slice(1), tokenCalls.length / tokenAddresses.length) : []; + const tokenResults = multicallResults.slice(1).length ? chunk( + multicallResults.slice(1), + tokenCalls.length / tokenAddresses.length + ) : []; const tokenBalances = tokenResults.map((tokenResult, index) => { const [tokenBalance, tokenName, tokenSymbol, tokenDecimals] = tokenResult; const tokenAddress = tokenAddresses[index]; @@ -189805,7 +192875,11 @@ class TovarishClient extends RelayerClient { url, relayerAddress }) { - const status = await super.askRelayerStatus({ hostname, url, relayerAddress }); + const status = await super.askRelayerStatus({ + hostname, + url, + relayerAddress + }); if (!status.version.includes("tovarish")) { throw new Error("Not a tovarish relayer!"); } @@ -189841,7 +192915,14 @@ class TovarishClient extends RelayerClient { for (const rawStatus of statusArray) { const netId = rawStatus.netId; const config = getConfig(netId); - const statusValidator = dist_ajv.compile(getStatusSchema(rawStatus.netId, config, this.tovarish)); + const statusValidator = dist_ajv.compile( + getStatusSchema( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + rawStatus.netId, + config, + this.tovarish + ) + ); if (!statusValidator) { continue; } @@ -189856,7 +192937,9 @@ class TovarishClient extends RelayerClient { throw new Error("This relayer serves a different network"); } if (relayerAddress && status.netId === NetId.MAINNET && status.rewardAccount !== relayerAddress) { - throw new Error("The Relayer reward address must match registered address"); + throw new Error( + "The Relayer reward address must match registered address" + ); } if (!status.version.includes("tovarish")) { throw new Error("Not a tovarish relayer!"); @@ -189872,7 +192955,10 @@ class TovarishClient extends RelayerClient { } const hostname = `${tovarishHost}/${this.netId}`; try { - const status = await this.askRelayerStatus({ hostname, relayerAddress }); + const status = await this.askRelayerStatus({ + hostname, + relayerAddress + }); return { netId: status.netId, url: status.url, @@ -189904,7 +192990,9 @@ class TovarishClient extends RelayerClient { } async getValidRelayers(relayers) { const invalidRelayers = []; - const validRelayers = (await Promise.all(relayers.map((relayer) => this.filterRelayer(relayer)))).filter((r) => { + const validRelayers = (await Promise.all( + relayers.map((relayer) => this.filterRelayer(relayer)) + )).filter((r) => { if (!r) { return false; } @@ -189926,7 +193014,10 @@ class TovarishClient extends RelayerClient { relayers.filter((r) => r.tovarishHost && r.tovarishNetworks?.length).map(async (relayer) => { const { ensName, relayerAddress, tovarishHost } = relayer; try { - const statusArray = await this.askAllStatus({ hostname: tovarishHost, relayerAddress }); + const statusArray = await this.askAllStatus({ + hostname: tovarishHost, + relayerAddress + }); for (const status of statusArray) { validRelayers.push({ netId: status.netId, @@ -189935,7 +193026,9 @@ class TovarishClient extends RelayerClient { ensName, relayerAddress, rewardAccount: address_getAddress(status.rewardAccount), - instances: getSupportedInstances(status.instances), + instances: getSupportedInstances( + status.instances + ), stakeBalance: relayer.stakeBalance, gasPrice: status.gasPrices?.fast, ethPrices: status.ethPrices, @@ -190016,7 +193109,9 @@ class TovarishClient extends RelayerClient { events.push(...fetchedEvents); break; } - fetchedEvents = fetchedEvents.filter((e) => e.blockNumber !== lastEvent.blockNumber); + fetchedEvents = fetchedEvents.filter( + (e) => e.blockNumber !== lastEvent.blockNumber + ); fromBlock = Number(lastEvent.blockNumber); events.push(...fetchedEvents); } @@ -190059,7 +193154,12 @@ async function calculateSnarkProof(input, circuit, provingKey) { }; console.log("Start generating SNARK proof", snarkInput); console.time("SNARK proof time"); - const proofData = await src_utils.genWitnessAndProve(await dist_groth16, snarkInput, circuit, provingKey); + const proofData = await src_utils.genWitnessAndProve( + await dist_groth16, + snarkInput, + circuit, + provingKey + ); const proof = src_utils.toSolidityInput(proofData).proof; console.timeEnd("SNARK proof time"); const args = [ @@ -191144,7 +194244,7 @@ function tornadoProgram() { }); const depositData = TornadoRouterInterface.encodeFunctionData("deposit", [instanceAddress, commitmentHex, "0x"]); if (!isEth) { - const approveData = ERC20Interface.encodeFunctionData("approve", [routerContract, MaxUint256]); + const approveData = ERC20Interface.encodeFunctionData("approve", [routerContract, numbers_MaxUint256]); console.log(`Approve Data: ${JSON.stringify({ to: tokenAddress, data: approveData }, null, 2)}] `); console.log(`Transaction Data: ${JSON.stringify({ to: routerContract, data: depositData }, null, 2)} @@ -191166,7 +194266,6 @@ function tornadoProgram() { const { multicallContract, routerContract, - echoContract, nativeCurrency, tokens: { [currency]: currencyConfig } } = config; @@ -191185,11 +194284,7 @@ function tornadoProgram() { options, provider }); - const noteAccount = accountKey ? new NoteAccount({ - netId, - recoveryKey: accountKey, - Echoer: Echoer__factory.connect(echoContract, provider) - }) : void 0; + const noteAccount = accountKey ? new NoteAccount({ recoveryKey: accountKey }) : void 0; if (!signer) { throw new Error( "Signer not defined, make sure you have either viewOnly address, mnemonic, or private key configured" @@ -191228,7 +194323,7 @@ function tornadoProgram() { const resp = await programSendTransaction({ signer, options, - populatedTransaction: await Token.approve.populateTransaction(routerContract, MaxUint256) + populatedTransaction: await Token.approve.populateTransaction(routerContract, numbers_MaxUint256) }); if (signer instanceof VoidSigner || options.localRpc) { console.log( @@ -191274,7 +194369,7 @@ function tornadoProgram() { ).argument("", "Tornado Cash Invoice generated from create command").action(async (invoiceString, cmdOptions) => { const { options, fetchDataOptions: fetchDataOptions2 } = await getProgramOptions(cmdOptions); const { rpc } = options; - const { currency, amount, netId, commitment } = new Invoice(invoiceString); + const { currency, amount, netId, commitmentHex } = new Invoice(invoiceString); const config = getConfig(netId); const { multicallContract, @@ -191335,7 +194430,7 @@ function tornadoProgram() { await programSendTransaction({ signer, options, - populatedTransaction: await Token.approve.populateTransaction(routerContract, MaxUint256) + populatedTransaction: await Token.approve.populateTransaction(routerContract, numbers_MaxUint256) }); if (signer instanceof VoidSigner) { console.log( @@ -191347,7 +194442,7 @@ function tornadoProgram() { await programSendTransaction({ signer, options, - populatedTransaction: await TornadoProxy.deposit.populateTransaction(instanceAddress, commitment, "0x", { + populatedTransaction: await TornadoProxy.deposit.populateTransaction(instanceAddress, commitmentHex, "0x", { value: isEth ? denomination : BigInt(0) }) }); @@ -191928,7 +195023,7 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} const config = getConfig(netId); const { echoContract, - constants: { ["NOTE_ACCOUNT_BLOCK"]: deployedBlock } + constants: { NOTE_ACCOUNT_BLOCK } } = config; const provider = await getProgramProvider(rpc, { netId, @@ -191949,17 +195044,12 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} `); } - const walletPublicKey = NoteAccount.getWalletPublicKey(signer); const Echoer = Echoer__factory.connect(echoContract, provider); - const newAccount = new NoteAccount({ - netId, - Echoer - }); const echoService = new NodeEchoService({ netId, provider, Echoer, - deployedBlock, + deployedBlock: NOTE_ACCOUNT_BLOCK, fetchDataOptions: fetchDataOptions2, tovarishClient, cacheDirectory: EVENTS_DIR, @@ -191967,8 +195057,7 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} }); console.log("Getting historic note accounts would take a while\n"); const echoEvents = (await echoService.updateEvents()).events; - const userEvents = echoEvents.filter(({ address }) => address === signer.address); - const existingAccounts = newAccount.decryptAccountsWithWallet(signer, userEvents); + const existingAccounts = await NoteAccount.decryptSignerNoteAccounts(signer, echoEvents); const accountsTable = new (cli_table3_default())(); if (existingAccounts.length) { accountsTable.push( @@ -191981,6 +195070,7 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} ); console.log(accountsTable.toString() + "\n"); } else { + const newAccount = new NoteAccount({}); accountsTable.push( [{ colSpan: 1, content: `New Note Account (${netId})`, hAlign: "center" }], ["noteAccount"].map((content) => ({ content: lib_default().red.bold(content) })), @@ -191994,7 +195084,8 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} await (0,promises_namespaceObject.writeFile)(fileName, newAccount.recoveryKey + "\n"); console.log("Backup encrypted account on-chain to use on UI?\n"); await promptConfirmation(options.nonInteractive); - const { data } = newAccount.getEncryptedAccount(walletPublicKey); + const signerPublicKey = await NoteAccount.getSignerPublicKey(signer); + const { data } = newAccount.getEncryptedAccount(signerPublicKey); console.log("Sending encrypted note account backup transaction through wallet\n"); await programSendTransaction({ signer, @@ -192004,7 +195095,7 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} } external_process_default().exit(0); }); - program.command("decryptNotes").description("Fetch notes from deposit events and decrypt them. \n\nRequires a valid account key to work").argument("", "Network Chain ID to connect with (see https://chainlist.org for examples)", parseNumber).argument( + program.command("decrypt").description("Fetch encryption keys and encrypted notes from on-chain. \n\n").argument("", "Network Chain ID to connect with (see https://chainlist.org for examples)", parseNumber).argument( "[accountKey]", "Account key generated from UI or the createAccount to store encrypted notes on-chain", parseRecoveryKey @@ -192018,17 +195109,12 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} const { routerContract, echoContract, - constants: { ENCRYPTED_NOTES_BLOCK } + constants: { NOTE_ACCOUNT_BLOCK, ENCRYPTED_NOTES_BLOCK } } = config; const provider = await getProgramProvider(rpc, { netId, ...fetchDataOptions2 }); - if (!accountKey) { - throw new Error( - "No account key find! Please supply correct account key from either UI or find one with createAccount command" - ); - } const tovarishClient = !disableTovarish ? (await getTovarishRelayer({ options, fetchDataOptions: fetchDataOptions2, netId })).relayerClient : void 0; if (tovarishClient?.selectedRelayer) { console.log(` @@ -192036,10 +195122,15 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} `); } const Echoer = Echoer__factory.connect(echoContract, provider); - const noteAccount = new NoteAccount({ + const echoService = new NodeEchoService({ netId, - recoveryKey: accountKey, - Echoer + provider, + Echoer, + deployedBlock: NOTE_ACCOUNT_BLOCK, + fetchDataOptions: fetchDataOptions2, + tovarishClient, + cacheDirectory: EVENTS_DIR, + userDirectory: SAVED_DIR }); const encryptedNotesService = new NodeEncryptedNotesService({ netId, @@ -192051,18 +195142,46 @@ Connected with Tovarish Relayer ${tovarishClient.selectedRelayer.url} cacheDirectory: EVENTS_DIR, userDirectory: SAVED_DIR }); - const encryptedNoteEvents = (await encryptedNotesService.updateEvents()).events; + const accounts = []; + if (accountKey) { + accounts.push(new NoteAccount({ recoveryKey: accountKey })); + } + const signer = getProgramSigner({ + options, + provider + }); + if (signer?.privateKey) { + const echoEvents = (await echoService.updateEvents()).events; + accounts.push(...await NoteAccount.decryptSignerNoteAccounts(signer, echoEvents)); + } + if (!accounts.length) { + throw new Error( + "No encryption key find! Please supply encryption key from either UI or create one with createAccount command" + ); + } const accountsTable = new (cli_table3_default())(); accountsTable.push( [{ colSpan: 2, content: `Note Accounts (${netId})`, hAlign: "center" }], - [{ colSpan: 2, content: `Account key: ${accountKey}`, hAlign: "center" }], - ["blockNumber", "note"].map((content) => ({ content: lib_default().red.bold(content) })), - ...noteAccount.decryptNotes(encryptedNoteEvents).map(({ blockNumber, address, noteHex }) => { - const { amount, currency } = getInstanceByAddress(config, address) || {}; - return [blockNumber, `tornado-${currency}-${amount}-${netId}-${noteHex}`]; + [{ colSpan: 2, content: `Backed up by: ${signer?.address}`, hAlign: "center" }], + ["blockNumber", "noteAccount"].map((content) => ({ content: lib_default().red.bold(content) })), + ...accounts.map(({ blockNumber, recoveryKey }) => { + return [blockNumber, recoveryKey]; }) ); - console.log("\n" + accountsTable.toString() + "\n"); + const encryptedNoteEvents = (await encryptedNotesService.updateEvents()).events; + const decryptedNotes = accounts.map((noteAccount) => noteAccount.decryptNotes(encryptedNoteEvents)).flat().map(({ blockNumber, address, noteHex }) => { + const { amount, currency } = getInstanceByAddress(config, address) || {}; + return [blockNumber, `tornado-${currency}-${amount}-${netId}-${noteHex}`]; + }); + const notesTable = new (cli_table3_default())(); + notesTable.push( + [{ colSpan: 2, content: `Note Accounts (${netId})`, hAlign: "center" }], + [{ colSpan: 2, content: `Account key: ${accountKey}`, hAlign: "center" }], + ["blockNumber", "note"].map((content) => ({ content: lib_default().red.bold(content) })), + ...decryptedNotes + ); + console.log(accountsTable.toString() + "\n"); + console.log("\n" + notesTable.toString() + "\n"); external_process_default().exit(0); }); program.command("send").description("Send ETH or ERC20 token to address.\n\n").argument("", "Network Chain ID to connect with (see https://chainlist.org for examples)", parseNumber).argument("", "To address", parseAddress).argument("[amount]", "Sending amounts", parseNumber).argument("[token]", "ERC20 Token Contract to check Token Balance", parseAddress).action( diff --git a/package.json b/package.json index 0beec62..1766317 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,13 @@ "updateEvents": "ts-node src/cli.ts updateEvents", "relayers": "ts-node src/cli.ts relayers", "createAccount": "ts-node src/cli.ts createAccount", - "decryptNotes": "ts-node src/cli.ts decryptNotes", + "decrypt": "ts-node src/cli.ts decrypt", "send": "ts-node src/cli.ts send", "balance": "ts-node src/cli.ts balance", "sign": "ts-node src/cli.ts sign", - "broadcast": "ts-node src/cli.ts broadcast" + "broadcast": "ts-node src/cli.ts broadcast", + "proposals": "ts-node src/cli.ts proposals", + "delegates": "ts-node src/cli.ts delegates" }, "author": "", "license": "MIT", @@ -51,11 +53,11 @@ "optionalDependencies": {}, "devDependencies": { "@colors/colors": "^1.6.0", - "@tornado/core": "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531", + "@tornado/core": "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3", "@typechain/ethers-v6": "^0.5.1", "@types/figlet": "^1.7.0", - "@typescript-eslint/eslint-plugin": "^8.9.0", - "@typescript-eslint/parser": "^8.9.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "bloomfilter.js": "^1.0.2", "cli-table3": "^0.6.4", "commander": "^12.0.0", diff --git a/src/program.ts b/src/program.ts index fa909b1..d3ffcbd 100644 --- a/src/program.ts +++ b/src/program.ts @@ -622,7 +622,6 @@ export function tornadoProgram() { const { multicallContract, routerContract, - echoContract, nativeCurrency, tokens: { [currency]: currencyConfig }, } = config; @@ -646,13 +645,7 @@ export function tornadoProgram() { provider, }); - const noteAccount = accountKey - ? new NoteAccount({ - netId, - recoveryKey: accountKey, - Echoer: Echoer__factory.connect(echoContract, provider), - }) - : undefined; + const noteAccount = accountKey ? new NoteAccount({ recoveryKey: accountKey }) : undefined; if (!signer) { throw new Error( @@ -764,7 +757,7 @@ export function tornadoProgram() { const { options, fetchDataOptions } = await getProgramOptions(cmdOptions); const { rpc } = options; - const { currency, amount, netId, commitment } = new Invoice(invoiceString); + const { currency, amount, netId, commitmentHex } = new Invoice(invoiceString); const config = getConfig(netId); @@ -854,7 +847,7 @@ export function tornadoProgram() { await programSendTransaction({ signer, options, - populatedTransaction: await TornadoProxy.deposit.populateTransaction(instanceAddress, commitment, '0x', { + populatedTransaction: await TornadoProxy.deposit.populateTransaction(instanceAddress, commitmentHex, '0x', { value: isEth ? denomination : BigInt(0), }), }); @@ -1611,7 +1604,7 @@ export function tornadoProgram() { const { echoContract, - constants: { ['NOTE_ACCOUNT_BLOCK']: deployedBlock }, + constants: { NOTE_ACCOUNT_BLOCK }, } = config; const provider = await getProgramProvider(rpc, { @@ -1641,20 +1634,13 @@ export function tornadoProgram() { /** * Find for any existing note accounts */ - const walletPublicKey = NoteAccount.getWalletPublicKey(signer); - const Echoer = Echoer__factory.connect(echoContract, provider); - const newAccount = new NoteAccount({ - netId, - Echoer, - }); - const echoService = new NodeEchoService({ netId, provider, Echoer, - deployedBlock, + deployedBlock: NOTE_ACCOUNT_BLOCK, fetchDataOptions, tovarishClient, cacheDirectory: EVENTS_DIR, @@ -1665,9 +1651,7 @@ export function tornadoProgram() { const echoEvents = (await echoService.updateEvents()).events; - const userEvents = echoEvents.filter(({ address }) => address === signer.address); - - const existingAccounts = newAccount.decryptAccountsWithWallet(signer, userEvents); + const existingAccounts = await NoteAccount.decryptSignerNoteAccounts(signer, echoEvents); const accountsTable = new Table(); @@ -1683,6 +1667,8 @@ export function tornadoProgram() { console.log(accountsTable.toString() + '\n'); } else { + const newAccount = new NoteAccount({}); + accountsTable.push( [{ colSpan: 1, content: `New Note Account (${netId})`, hAlign: 'center' }], ['noteAccount'].map((content) => ({ content: colors.red.bold(content) })), @@ -1702,7 +1688,9 @@ export function tornadoProgram() { await promptConfirmation(options.nonInteractive); - const { data } = newAccount.getEncryptedAccount(walletPublicKey); + const signerPublicKey = await NoteAccount.getSignerPublicKey(signer); + + const { data } = newAccount.getEncryptedAccount(signerPublicKey); console.log('Sending encrypted note account backup transaction through wallet\n'); @@ -1717,8 +1705,8 @@ export function tornadoProgram() { }); program - .command('decryptNotes') - .description('Fetch notes from deposit events and decrypt them. \n\n' + 'Requires a valid account key to work') + .command('decrypt') + .description('Fetch encryption keys and encrypted notes from on-chain. \n\n') .argument('', 'Network Chain ID to connect with (see https://chainlist.org for examples)', parseNumber) .argument( '[accountKey]', @@ -1737,7 +1725,7 @@ export function tornadoProgram() { const { routerContract, echoContract, - constants: { ENCRYPTED_NOTES_BLOCK }, + constants: { NOTE_ACCOUNT_BLOCK, ENCRYPTED_NOTES_BLOCK }, } = config; const provider = await getProgramProvider(rpc, { @@ -1745,12 +1733,6 @@ export function tornadoProgram() { ...fetchDataOptions, }); - if (!accountKey) { - throw new Error( - 'No account key find! Please supply correct account key from either UI or find one with createAccount command', - ); - } - const tovarishClient = !disableTovarish ? (await getTovarishRelayer({ options, fetchDataOptions, netId })).relayerClient : undefined; @@ -1761,10 +1743,15 @@ export function tornadoProgram() { const Echoer = Echoer__factory.connect(echoContract, provider); - const noteAccount = new NoteAccount({ + const echoService = new NodeEchoService({ netId, - recoveryKey: accountKey, + provider, Echoer, + deployedBlock: NOTE_ACCOUNT_BLOCK, + fetchDataOptions, + tovarishClient, + cacheDirectory: EVENTS_DIR, + userDirectory: SAVED_DIR, }); const encryptedNotesService = new NodeEncryptedNotesService({ @@ -1778,22 +1765,65 @@ export function tornadoProgram() { userDirectory: SAVED_DIR, }); - const encryptedNoteEvents = (await encryptedNotesService.updateEvents()).events; + const accounts = []; + + if (accountKey) { + accounts.push(new NoteAccount({ recoveryKey: accountKey })); + } + + // Recover encryption keys possibly encrypted by a signer + const signer = getProgramSigner({ + options, + provider, + }) as TornadoWallet; + + if (signer?.privateKey) { + const echoEvents = (await echoService.updateEvents()).events; + + accounts.push(...(await NoteAccount.decryptSignerNoteAccounts(signer, echoEvents))); + } + + if (!accounts.length) { + throw new Error( + 'No encryption key find! Please supply encryption key from either UI or create one with createAccount command', + ); + } const accountsTable = new Table(); accountsTable.push( [{ colSpan: 2, content: `Note Accounts (${netId})`, hAlign: 'center' }], - [{ colSpan: 2, content: `Account key: ${accountKey}`, hAlign: 'center' }], - ['blockNumber', 'note'].map((content) => ({ content: colors.red.bold(content) })), - ...noteAccount.decryptNotes(encryptedNoteEvents).map(({ blockNumber, address, noteHex }) => { - const { amount, currency } = getInstanceByAddress(config, address) || {}; - - return [blockNumber, `tornado-${currency}-${amount}-${netId}-${noteHex}`]; + [{ colSpan: 2, content: `Backed up by: ${signer?.address}`, hAlign: 'center' }], + ['blockNumber', 'noteAccount'].map((content) => ({ content: colors.red.bold(content) })), + ...accounts.map(({ blockNumber, recoveryKey }) => { + return [blockNumber, recoveryKey]; }), ); - console.log('\n' + accountsTable.toString() + '\n'); + // Decrypting notes + const encryptedNoteEvents = (await encryptedNotesService.updateEvents()).events; + + const decryptedNotes = accounts + .map((noteAccount) => noteAccount.decryptNotes(encryptedNoteEvents)) + .flat() + .map(({ blockNumber, address, noteHex }) => { + const { amount, currency } = getInstanceByAddress(config, address) || {}; + + return [blockNumber, `tornado-${currency}-${amount}-${netId}-${noteHex}`]; + }); + + const notesTable = new Table(); + + notesTable.push( + [{ colSpan: 2, content: `Note Accounts (${netId})`, hAlign: 'center' }], + [{ colSpan: 2, content: `Account key: ${accountKey}`, hAlign: 'center' }], + ['blockNumber', 'note'].map((content) => ({ content: colors.red.bold(content) })), + ...decryptedNotes, + ); + + console.log(accountsTable.toString() + '\n'); + + console.log('\n' + notesTable.toString() + '\n'); process.exit(0); }); diff --git a/static/events/echo_11155111.json.zip b/static/events/echo_11155111.json.zip index 36e1aac..ee1251d 100644 Binary files a/static/events/echo_11155111.json.zip and b/static/events/echo_11155111.json.zip differ diff --git a/yarn.lock b/yarn.lock index 2f1d41c..11649bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -648,10 +648,10 @@ "@metamask/superstruct" "^3.1.0" "@metamask/utils" "^9.0.0" -"@metamask/eth-sig-util@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-7.0.3.tgz#be9e444fe0b8474c04e2ff42fd983173767f6ac0" - integrity sha512-PAtGnOkYvh90k2lEZldq/FK7GTLF6WxE+2bV85PoA3pqlJnmJCAY62tuvxHSwnVngSKlc4mcNvjnUg2eYO6JGg== +"@metamask/eth-sig-util@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-8.0.0.tgz#6310d93cd1101cab3cc6bc2a1ff526290ed2695b" + integrity sha512-IwE6aoxUL39IhmsAgE4nk+OZbNo+ThFZRNsUjE1pjdEa4MFpWzm1Rue4zJ5DMy1oUyZBi/aiCLMhdMnjl2bh2Q== dependencies: "@ethereumjs/util" "^8.1.0" "@metamask/abi-utils" "^2.0.4" @@ -777,20 +777,20 @@ "@noble/hashes" "~1.4.0" "@scure/base" "~1.1.6" -"@tornado/contracts@git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4": +"@tornado/contracts@git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831": version "1.0.2" - resolved "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4" + resolved "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831" dependencies: "@openzeppelin/contracts" "5.0.2" "@openzeppelin/contracts-v3" "npm:@openzeppelin/contracts@3.2.0-rc.0" ethers "^6.13.4" -"@tornado/core@git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531": +"@tornado/core@git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3": version "1.0.19" - resolved "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#9f4044d11033e99e0a863989864d1578a93de531" + resolved "git+https://git.tornado.ws/tornadocontrib/tornado-core.git#8041bd7f7801fd97a87d8c1945c0251b49032ec3" dependencies: - "@metamask/eth-sig-util" "^7.0.3" - "@tornado/contracts" "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#ece511f424dc811c3aec149a4bf0e3731c0598a4" + "@metamask/eth-sig-util" "^8.0.0" + "@tornado/contracts" "git+https://git.tornado.ws/tornadocontrib/tornado-contracts.git#1b1d707878c16a3dc60d295299d4f0e7ce6ba831" "@tornado/fixed-merkle-tree" "^0.7.3" "@tornado/snarkjs" "^0.1.20" "@tornado/websnark" "^0.0.4" @@ -907,62 +907,62 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@typescript-eslint/eslint-plugin@^8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz#bf0b25305b0bf014b4b194a6919103d7ac2a7907" - integrity sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg== +"@typescript-eslint/eslint-plugin@^8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz#c3f087d20715fa94310b30666c08b3349e0ab084" + integrity sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.9.0" - "@typescript-eslint/type-utils" "8.9.0" - "@typescript-eslint/utils" "8.9.0" - "@typescript-eslint/visitor-keys" "8.9.0" + "@typescript-eslint/scope-manager" "8.11.0" + "@typescript-eslint/type-utils" "8.11.0" + "@typescript-eslint/utils" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.9.0.tgz#0cecda6def8aef95d7c7098359c0fda5a362d6ad" - integrity sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ== +"@typescript-eslint/parser@^8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.11.0.tgz#2ad1481388dc1c937f50b2d138c9ca57cc6c5cce" + integrity sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg== dependencies: - "@typescript-eslint/scope-manager" "8.9.0" - "@typescript-eslint/types" "8.9.0" - "@typescript-eslint/typescript-estree" "8.9.0" - "@typescript-eslint/visitor-keys" "8.9.0" + "@typescript-eslint/scope-manager" "8.11.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/typescript-estree" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz#c98fef0c4a82a484e6a1eb610a55b154d14d46f3" - integrity sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ== +"@typescript-eslint/scope-manager@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz#9d399ce624118966732824878bc9a83593a30405" + integrity sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ== dependencies: - "@typescript-eslint/types" "8.9.0" - "@typescript-eslint/visitor-keys" "8.9.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" -"@typescript-eslint/type-utils@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz#aa86da3e4555fe7c8b42ab75e13561c4b5a8dfeb" - integrity sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q== +"@typescript-eslint/type-utils@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz#b7f9e6120c1ddee8a1a07615646642ad85fc91b5" + integrity sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg== dependencies: - "@typescript-eslint/typescript-estree" "8.9.0" - "@typescript-eslint/utils" "8.9.0" + "@typescript-eslint/typescript-estree" "8.11.0" + "@typescript-eslint/utils" "8.11.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6" - integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ== +"@typescript-eslint/types@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.11.0.tgz#7c766250502097f49bbc2e651132e6bf489e20b8" + integrity sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw== -"@typescript-eslint/typescript-estree@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz#1714f167e9063062dc0df49c1d25afcbc7a96199" - integrity sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g== +"@typescript-eslint/typescript-estree@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz#35fe5d3636fc5727c52429393415412e552e222b" + integrity sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg== dependencies: - "@typescript-eslint/types" "8.9.0" - "@typescript-eslint/visitor-keys" "8.9.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -970,22 +970,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.9.0.tgz#748bbe3ea5bee526d9786d9405cf1b0df081c299" - integrity sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ== +"@typescript-eslint/utils@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.11.0.tgz#4480d1e9f2bb18ea3510c79f870a1aefc118103d" + integrity sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.9.0" - "@typescript-eslint/types" "8.9.0" - "@typescript-eslint/typescript-estree" "8.9.0" + "@typescript-eslint/scope-manager" "8.11.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/typescript-estree" "8.11.0" -"@typescript-eslint/visitor-keys@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz#5f11f4d9db913f37da42776893ffe0dd1ae78f78" - integrity sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA== +"@typescript-eslint/visitor-keys@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz#273de1cbffe63d9f9cd7dfc20b5a5af66310cb92" + integrity sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw== dependencies: - "@typescript-eslint/types" "8.9.0" + "@typescript-eslint/types" "8.11.0" eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0":