diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index b0b29145..ab9dafd3 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/example/abi/HypERC20.ts b/example/abi/HypERC20.ts deleted file mode 100644 index 268d9d91..00000000 --- a/example/abi/HypERC20.ts +++ /dev/null @@ -1,2831 +0,0 @@ -export const HypERC20 = { - abi: [ - { - type: "constructor", - inputs: [ - { name: "__decimals", type: "uint8", internalType: "uint8" }, - { name: "_mailbox", type: "address", internalType: "address" }, - ], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "allowance", - inputs: [ - { name: "owner", type: "address", internalType: "address" }, - { name: "spender", type: "address", internalType: "address" }, - ], - outputs: [{ name: "", type: "uint256", internalType: "uint256" }], - stateMutability: "view", - }, - { - type: "function", - name: "approve", - inputs: [ - { name: "spender", type: "address", internalType: "address" }, - { name: "amount", type: "uint256", internalType: "uint256" }, - ], - outputs: [{ name: "", type: "bool", internalType: "bool" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "balanceOf", - inputs: [{ name: "_account", type: "address", internalType: "address" }], - outputs: [{ name: "", type: "uint256", internalType: "uint256" }], - stateMutability: "view", - }, - { - type: "function", - name: "decimals", - inputs: [], - outputs: [{ name: "", type: "uint8", internalType: "uint8" }], - stateMutability: "view", - }, - { - type: "function", - name: "decreaseAllowance", - inputs: [ - { name: "spender", type: "address", internalType: "address" }, - { - name: "subtractedValue", - type: "uint256", - internalType: "uint256", - }, - ], - outputs: [{ name: "", type: "bool", internalType: "bool" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "destinationGas", - inputs: [{ name: "", type: "uint32", internalType: "uint32" }], - outputs: [{ name: "", type: "uint256", internalType: "uint256" }], - stateMutability: "view", - }, - { - type: "function", - name: "domains", - inputs: [], - outputs: [{ name: "", type: "uint32[]", internalType: "uint32[]" }], - stateMutability: "view", - }, - { - type: "function", - name: "enrollRemoteRouter", - inputs: [ - { name: "_domain", type: "uint32", internalType: "uint32" }, - { name: "_router", type: "bytes32", internalType: "bytes32" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "enrollRemoteRouters", - inputs: [ - { name: "_domains", type: "uint32[]", internalType: "uint32[]" }, - { - name: "_addresses", - type: "bytes32[]", - internalType: "bytes32[]", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "handle", - inputs: [ - { name: "_origin", type: "uint32", internalType: "uint32" }, - { name: "_sender", type: "bytes32", internalType: "bytes32" }, - { name: "_message", type: "bytes", internalType: "bytes" }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "function", - name: "hook", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IPostDispatchHook", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "increaseAllowance", - inputs: [ - { name: "spender", type: "address", internalType: "address" }, - { name: "addedValue", type: "uint256", internalType: "uint256" }, - ], - outputs: [{ name: "", type: "bool", internalType: "bool" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "initialize", - inputs: [ - { - name: "_totalSupply", - type: "uint256", - internalType: "uint256", - }, - { name: "_name", type: "string", internalType: "string" }, - { name: "_symbol", type: "string", internalType: "string" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "interchainSecurityModule", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IInterchainSecurityModule", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "localDomain", - inputs: [], - outputs: [{ name: "", type: "uint32", internalType: "uint32" }], - stateMutability: "view", - }, - { - type: "function", - name: "mailbox", - inputs: [], - outputs: [ - { name: "", type: "address", internalType: "contract IMailbox" }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "name", - inputs: [], - outputs: [{ name: "", type: "string", internalType: "string" }], - stateMutability: "view", - }, - { - type: "function", - name: "owner", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "quoteGasPayment", - inputs: [ - { - name: "_destinationDomain", - type: "uint32", - internalType: "uint32", - }, - ], - outputs: [ - { name: "_gasPayment", type: "uint256", internalType: "uint256" }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "renounceOwnership", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "routers", - inputs: [{ name: "_domain", type: "uint32", internalType: "uint32" }], - outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }], - stateMutability: "view", - }, - { - type: "function", - name: "setDestinationGas", - inputs: [ - { name: "domain", type: "uint32", internalType: "uint32" }, - { name: "gas", type: "uint256", internalType: "uint256" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setDestinationGas", - inputs: [ - { - name: "gasConfigs", - type: "tuple[]", - internalType: "struct GasRouter.GasRouterConfig[]", - components: [ - { name: "domain", type: "uint32", internalType: "uint32" }, - { name: "gas", type: "uint256", internalType: "uint256" }, - ], - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setHook", - inputs: [{ name: "_hook", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setInterchainSecurityModule", - inputs: [{ name: "_module", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "symbol", - inputs: [], - outputs: [{ name: "", type: "string", internalType: "string" }], - stateMutability: "view", - }, - { - type: "function", - name: "totalSupply", - inputs: [], - outputs: [{ name: "", type: "uint256", internalType: "uint256" }], - stateMutability: "view", - }, - { - type: "function", - name: "transfer", - inputs: [ - { name: "to", type: "address", internalType: "address" }, - { name: "amount", type: "uint256", internalType: "uint256" }, - ], - outputs: [{ name: "", type: "bool", internalType: "bool" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "transferFrom", - inputs: [ - { name: "from", type: "address", internalType: "address" }, - { name: "to", type: "address", internalType: "address" }, - { name: "amount", type: "uint256", internalType: "uint256" }, - ], - outputs: [{ name: "", type: "bool", internalType: "bool" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "transferOwnership", - inputs: [{ name: "newOwner", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "transferRemote", - inputs: [ - { name: "_destination", type: "uint32", internalType: "uint32" }, - { name: "_recipient", type: "bytes32", internalType: "bytes32" }, - { name: "_amountOrId", type: "uint256", internalType: "uint256" }, - ], - outputs: [ - { name: "messageId", type: "bytes32", internalType: "bytes32" }, - ], - stateMutability: "payable", - }, - { - type: "function", - name: "unenrollRemoteRouter", - inputs: [{ name: "_domain", type: "uint32", internalType: "uint32" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "unenrollRemoteRouters", - inputs: [ - { name: "_domains", type: "uint32[]", internalType: "uint32[]" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "event", - name: "Approval", - inputs: [ - { - name: "owner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "spender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "value", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Initialized", - inputs: [ - { - name: "version", - type: "uint8", - indexed: false, - internalType: "uint8", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "OwnershipTransferred", - inputs: [ - { - name: "previousOwner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "newOwner", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "ReceivedTransferRemote", - inputs: [ - { - name: "origin", - type: "uint32", - indexed: true, - internalType: "uint32", - }, - { - name: "recipient", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "SentTransferRemote", - inputs: [ - { - name: "destination", - type: "uint32", - indexed: true, - internalType: "uint32", - }, - { - name: "recipient", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Transfer", - inputs: [ - { - name: "from", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "to", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "value", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - ], - anonymous: false, - }, - ], - bytecode: { - object: - "0x60e06040523480156200001157600080fd5b506040516200325b3803806200325b833981016040819052620000349162000181565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001d0565b63ffffffff1660a0526200011a336200012f565b50505060ff90931660c05250620001ff915050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080604083850312156200019557600080fd5b825160ff81168114620001a757600080fd5b60208401519092506001600160a01b0381168114620001c557600080fd5b809150509250929050565b600060208284031215620001e357600080fd5b815163ffffffff81168114620001f857600080fd5b9392505050565b60805160a05160c0516130176200024460003960006102f3015260006104ab0152600081816105b401528181610ab101528181611e72015261221701526130176000f3fe6080604052600436106101fe5760003560e01c80637f5a7c7b1161011d578063b49c53a7116100b0578063e9198bf91161007f578063efae508a11610064578063efae508a14610696578063f2ed8c53146106b6578063f2fde38b146106d657600080fd5b8063e9198bf914610656578063eedfca5f1461067657600080fd5b8063b49c53a714610582578063d5438eae146105a2578063dd62ed3e146105d6578063de523cf31461062957600080fd5b806395d89b41116100ec57806395d89b411461050d578063a457c2d714610522578063a9059cbb14610542578063b1bd64361461056257600080fd5b80637f5a7c7b1461043457806381b4e8b4146104865780638d3638f4146104995780638da5cb5b146104e257600080fd5b80633dfd38731161019557806370a082311161016457806370a08231146103b2578063715018a6146103d257806371a15b38146103e7578063775313a11461040757600080fd5b80633dfd38731461033d578063440df4f41461035d57806349d462ef1461037f57806356d5d4751461039f57600080fd5b806323b872dd116101d157806323b872dd1461029f5780632ead72f6146102bf578063313ce567146102df578063395093511461031d57600080fd5b806306fdde0314610203578063095ea7b31461022e5780630e72cc061461025e57806318160ddd14610280575b600080fd5b34801561020f57600080fd5b506102186106f6565b604051610225919061267f565b60405180910390f35b34801561023a57600080fd5b5061024e6102493660046126bb565b610788565b6040519015158152602001610225565b34801561026a57600080fd5b5061027e6102793660046126e5565b6107a2565b005b34801561028c57600080fd5b506035545b604051908152602001610225565b3480156102ab57600080fd5b5061024e6102ba366004612700565b6108bd565b3480156102cb57600080fd5b506102916102da366004612750565b6108e1565b3480156102eb57600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610225565b34801561032957600080fd5b5061024e6103383660046126bb565b610900565b34801561034957600080fd5b5061027e6103583660046126e5565b61094c565b34801561036957600080fd5b50610372610a62565b604051610225919061276b565b34801561038b57600080fd5b5061027e61039a3660046127b5565b610a73565b61027e6103ad3660046127d1565b610a99565b3480156103be57600080fd5b506102916103cd3660046126e5565b610c0d565b3480156103de57600080fd5b5061027e610c38565b3480156103f357600080fd5b5061027e61040236600461289d565b610c4c565b34801561041357600080fd5b50610291610422366004612750565b60fc6020526000908152604090205481565b34801561044057600080fd5b506097546104619073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610225565b6102916104943660046128df565b610ca7565b3480156104a557600080fd5b506104cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610225565b3480156104ee57600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610461565b34801561051957600080fd5b50610218610cb5565b34801561052e57600080fd5b5061024e61053d3660046126bb565b610cc4565b34801561054e57600080fd5b5061024e61055d3660046126bb565b610d95565b34801561056e57600080fd5b5061027e61057d366004612912565b610da3565b34801561058e57600080fd5b5061027e61059d3660046127b5565b610e2d565b3480156105ae57600080fd5b506104617f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e257600080fd5b506102916105f1366004612987565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b34801561063557600080fd5b506098546104619073ffffffffffffffffffffffffffffffffffffffff1681565b34801561066257600080fd5b5061027e6106713660046129ba565b610e3f565b34801561068257600080fd5b5061027e610691366004612b00565b610f1e565b3480156106a257600080fd5b5061027e6106b1366004612750565b6110be565b3480156106c257600080fd5b506102916106d1366004612750565b6110d2565b3480156106e257600080fd5b5061027e6106f13660046126e5565b6110ed565b60606036805461070590612b6d565b80601f016020809104026020016040519081016040528092919081815260200182805461073190612b6d565b801561077e5780601f106107535761010080835404028352916020019161077e565b820191906000526020600020905b81548152906001019060200180831161076157829003601f168201915b5050505050905090565b6000336107968185856111a1565b60019150505b92915050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107dc575073ffffffffffffffffffffffffffffffffffffffff8116155b61086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610875611354565b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000336108cb8582856113d5565b6108d68585856114a6565b506001949350505050565b6000806108f860c963ffffffff8086169061171c16565b949350505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906107969082908690610947908790612bef565b6111a1565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610986575073ffffffffffffffffffffffffffffffffffffffff8116155b610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e67000000000000000000000000000000000000000000000000006064820152608401610864565b610a1a611354565b50609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610a6e60c9611735565b905090565b610a7b611354565b63ffffffff91909116600090815260fc6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f78000000000000000000000000000000000000000000000000000000000000006064820152608401610864565b6000610b69856117f0565b9050838114610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e6465720000000000000000000000000000000000000000000000000000006064820152608401610864565b610c0685858585611856565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081205461079c565b610c40611354565b610c4a60006118e0565b565b610c54611354565b8060005b81811015610ca157610c8f848483818110610c7557610c75612c02565b9050602002016020810190610c8a9190612750565b611957565b610c9a600182612bef565b9050610c58565b50505050565b60006108f8848484346119ac565b60606037805461070590612b6d565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610864565b6108d682868684036111a1565b6000336107968185856114a6565b610dab611354565b60005b81811015610e2857610e16838383818110610dcb57610dcb612c02565b610de19260206040909202019081019150612750565b848484818110610df357610df3612c02565b9050604002016020013563ffffffff909116600090815260fc6020526040902055565b610e21600182612bef565b9050610dae565b505050565b610e35611354565b610a958282611a1b565b610e47611354565b828114610eb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610864565b8260005b81811015610f1657610f04868683818110610ed157610ed1612c02565b9050602002016020810190610ee69190612750565b858584818110610ef857610ef8612c02565b90506020020135611a1b565b610f0f600182612bef565b9050610eb4565b505050505050565b600054610100900460ff1615808015610f3e5750600054600160ff909116105b80610f585750303b158015610f58575060005460ff166001145b610fe4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610864565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561104257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61104c8383611a31565b6110563385611ad2565b8015610ca157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6110c6611354565b6110cf81611957565b50565b600061079c8260405180602001604052806000815250611bc7565b6110f5611354565b73ffffffffffffffffffffffffffffffffffffffff8116611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610864565b6110cf816118e0565b73ffffffffffffffffffffffffffffffffffffffff8316611243576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff82166112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610864565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ca15781811015611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610864565b610ca184848484036111a1565b73ffffffffffffffffffffffffffffffffffffffff8316611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff82166115ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061170f9086815260200190565b60405180910390a3610ca1565b6000806117298484611be0565b915091505b9250929050565b6060600061174283611c1a565b9050805167ffffffffffffffff81111561175e5761175e612a26565b604051908082528060200260200182016040528015611787578160200160208202803683370190505b50915060005b81518110156117e9578181815181106117a8576117a8612c02565b60200260200101518382815181106117c2576117c2612c02565b63ffffffff90921660209283029190910190910152806117e181612c31565b91505061178d565b5050919050565b6000808061180860c963ffffffff8087169061171c16565b915091508161181685611cb5565b9061184e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864919061267f565b509392505050565b60006118628383611cec565b905060006118708484611d0b565b905036600061187f8686611d1b565b9150915061189561188d8590565b848484611d2b565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516118ce91815260200190565b60405180910390a35050505050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61196b60c963ffffffff80841690611d3516565b61197482611cb5565b90610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864919061267f565b6000806119b884611d41565b90506119cf86846119ca888886611d61565b611d90565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec86604051611a0a91815260200190565b60405180910390a350949350505050565b610a9560c963ffffffff808516908490611db316565b600054610100900460ff16611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610864565b610a958282611dbe565b73ffffffffffffffffffffffffffffffffffffffff8216611b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610864565b8060356000828254611b619190612bef565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600080611bd3846117f0565b90506108f8848285611e6e565b6000818152600283016020526040812054819080611c0f57611c028585611f4f565b92506000915061172e9050565b60019250905061172e565b60606000611c2783611f5b565b90508067ffffffffffffffff811115611c4257611c42612a26565b604051908082528060200260200182016040528015611c6b578160200160208202803683370190505b50915060005b818110156117e957611c838482611f66565b60001c838281518110611c9857611c98612c02565b602090810291909101015280611cad81612c31565b915050611c71565b6060611cc68263ffffffff16611f72565b604051602001611cd69190612c69565b6040516020818303038152906040529050919050565b6000611cfb6020828486612cae565b611d0491612cd8565b9392505050565b6000611cfb604060208486612cae565b3660006117298360408187612cae565b610ca18484611ad2565b6000611d048383612030565b6060611d4d338361204d565b505060408051602081019091526000815290565b6060838383604051602001611d7893929190612d14565b60405160208183030381529060405290509392505050565b600080611d9c856117f0565b9050611daa85828686612213565b95945050505050565b610ca18383836122f7565b600054610100900460ff16611e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610864565b6036611e618382612d87565b506037610e288282612d87565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585611eb889612314565b6097546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152611f0e959493929173ffffffffffffffffffffffffffffffffffffffff1690600401612ea1565b602060405180830381865afa158015611f2b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190612f01565b6000611d048383612336565b600061079c8261234e565b6000611d048383612358565b60606000611f7f83612382565b600101905060008167ffffffffffffffff811115611f9f57611f9f612a26565b6040519080825280601f01601f191660200182016040528015611fc9576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611fd357509392505050565b60008181526002830160205260408120819055611d048383612464565b73ffffffffffffffffffffffffffffffffffffffff82166120f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08487878661225e8b612314565b6097546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526122b4959493929173ffffffffffffffffffffffffffffffffffffffff1690600401612ea1565b60206040518083038185885af11580156122d2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611daa9190612f01565b600082815260028401602052604081208290556108f88484612470565b63ffffffff8116600090815260fc602052604090205460609061079c9061247c565b60008181526001830160205260408120541515611d04565b600061079c825490565b600082600001828154811061236f5761236f612c02565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123cb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106123f7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061241557662386f26fc10000830492506010015b6305f5e100831061242d576305f5e100830492506008015b612710831061244157612710830492506004015b60648310612453576064830492506002015b600a831061079c5760010192915050565b6000611d04838361249a565b6000611d04838361258d565b606061079c60008333604051806020016040528060008152506125dc565b600081815260018301602052604081205480156125835760006124be600183612f1a565b85549091506000906124d290600190612f1a565b90508181146125375760008660000182815481106124f2576124f2612c02565b906000526020600020015490508087600001848154811061251557612515612c02565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061254857612548612f2d565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061079c565b600091505061079c565b60008181526001830160205260408120546125d45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561079c565b50600061079c565b60606001858585856040516020016125f8959493929190612f5c565b6040516020818303038152906040529050949350505050565b60005b8381101561262c578181015183820152602001612614565b50506000910152565b6000815180845261264d816020860160208601612611565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611d046020830184612635565b803573ffffffffffffffffffffffffffffffffffffffff811681146126b657600080fd5b919050565b600080604083850312156126ce57600080fd5b6126d783612692565b946020939093013593505050565b6000602082840312156126f757600080fd5b611d0482612692565b60008060006060848603121561271557600080fd5b61271e84612692565b925061272c60208501612692565b9150604084013590509250925092565b803563ffffffff811681146126b657600080fd5b60006020828403121561276257600080fd5b611d048261273c565b6020808252825182820181905260009190848201906040850190845b818110156127a957835163ffffffff1683529284019291840191600101612787565b50909695505050505050565b600080604083850312156127c857600080fd5b6126d78361273c565b600080600080606085870312156127e757600080fd5b6127f08561273c565b935060208501359250604085013567ffffffffffffffff8082111561281457600080fd5b818701915087601f83011261282857600080fd5b81358181111561283757600080fd5b88602082850101111561284957600080fd5b95989497505060200194505050565b60008083601f84011261286a57600080fd5b50813567ffffffffffffffff81111561288257600080fd5b6020830191508360208260051b850101111561172e57600080fd5b600080602083850312156128b057600080fd5b823567ffffffffffffffff8111156128c757600080fd5b6128d385828601612858565b90969095509350505050565b6000806000606084860312156128f457600080fd5b6128fd8461273c565b95602085013595506040909401359392505050565b6000806020838503121561292557600080fd5b823567ffffffffffffffff8082111561293d57600080fd5b818501915085601f83011261295157600080fd5b81358181111561296057600080fd5b8660208260061b850101111561297557600080fd5b60209290920196919550909350505050565b6000806040838503121561299a57600080fd5b6129a383612692565b91506129b160208401612692565b90509250929050565b600080600080604085870312156129d057600080fd5b843567ffffffffffffffff808211156129e857600080fd5b6129f488838901612858565b90965094506020870135915080821115612a0d57600080fd5b50612a1a87828801612858565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612a6657600080fd5b813567ffffffffffffffff80821115612a8157612a81612a26565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612ac757612ac7612a26565b81604052838152866020858801011115612ae057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215612b1557600080fd5b83359250602084013567ffffffffffffffff80821115612b3457600080fd5b612b4087838801612a55565b93506040860135915080821115612b5657600080fd5b50612b6386828701612a55565b9150509250925092565b600181811c90821680612b8157607f821691505b602082108103612bba577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561079c5761079c612bc0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c6257612c62612bc0565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca181601f850160208701612611565b91909101601f0192915050565b60008085851115612cbe57600080fd5b83861115612ccb57600080fd5b5050820193919092039150565b8035602083101561079c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251612d32816040850160208701612611565b91909101604001949350505050565b601f821115610e2857600081815260208120601f850160051c81016020861015612d685750805b601f850160051c820191505b81811015610f1657828155600101612d74565b815167ffffffffffffffff811115612da157612da1612a26565b612db581612daf8454612b6d565b84612d41565b602080601f831160018114612e085760008415612dd25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610f16565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612e5557888601518255948401946001909101908401612e36565b5085821015612e9157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a060408201526000612ec660a0830186612635565b8281036060840152612ed88186612635565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b600060208284031215612f1357600080fd5b5051919050565b8181038181111561079c5761079c612bc0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612fd0816056850160208701612611565b91909101605601969550505050505056fea26469706673582212205aa5f0cd0c461fd17913962c42f0282b08b0b421867bd51d53622eeb1a26654164736f6c63430008130033", - sourceMap: - "440:1683:220:-:0;;;537:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;597:8;;;;;-1:-1:-1;;;;;1702:19:52;;;1022:106:117;;;;-1:-1:-1;;;1022:106:117;;669:2:282;1022:106:117;;;651:21:282;708:2;688:18;;;681:30;747:32;727:18;;;720:60;797:18;;1022:106:117;;;;;;;;-1:-1:-1;;;;;1692:28:117;::::1;;::::0;;;1744:21:::1;::::0;;-1:-1:-1;;;1744:21:117;;;;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;1692:28;1744:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1730:35;;;::::0;1775:30:::1;1794:10;1775:18;:30::i;:::-;-1:-1:-1::0;;;617:22:220::1;::::0;;::::1;;::::0;-1:-1:-1;440:1683:220;;-1:-1:-1;;440:1683:220;2666:187:1;2758:6;;;-1:-1:-1;;;;;2774:17:1;;;-1:-1:-1;;;;;;2774:17:1;;;;;;;2806:40;;2758:6;;;2774:17;2758:6;;2806:40;;2739:16;;2806:40;2729:124;2666:187;:::o;14:448:282:-;91:6;99;152:2;140:9;131:7;127:23;123:32;120:52;;;168:1;165;158:12;120:52;200:9;194:16;250:4;243:5;239:16;232:5;229:27;219:55;;270:1;267;260:12;219:55;343:2;328:18;;322:25;293:5;;-1:-1:-1;;;;;;378:33:282;;366:46;;356:74;;426:1;423;416:12;356:74;449:7;439:17;;;14:448;;;;;:::o;826:280::-;895:6;948:2;936:9;927:7;923:23;919:32;916:52;;;964:1;961;954:12;916:52;996:9;990:16;1046:10;1039:5;1035:22;1028:5;1025:33;1015:61;;1072:1;1069;1062:12;1015:61;1095:5;826:280;-1:-1:-1;;;826:280:282:o;:::-;440:1683:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - linkReferences: {}, - }, - deployedBytecode: { - object: - "0x6080604052600436106101fe5760003560e01c80637f5a7c7b1161011d578063b49c53a7116100b0578063e9198bf91161007f578063efae508a11610064578063efae508a14610696578063f2ed8c53146106b6578063f2fde38b146106d657600080fd5b8063e9198bf914610656578063eedfca5f1461067657600080fd5b8063b49c53a714610582578063d5438eae146105a2578063dd62ed3e146105d6578063de523cf31461062957600080fd5b806395d89b41116100ec57806395d89b411461050d578063a457c2d714610522578063a9059cbb14610542578063b1bd64361461056257600080fd5b80637f5a7c7b1461043457806381b4e8b4146104865780638d3638f4146104995780638da5cb5b146104e257600080fd5b80633dfd38731161019557806370a082311161016457806370a08231146103b2578063715018a6146103d257806371a15b38146103e7578063775313a11461040757600080fd5b80633dfd38731461033d578063440df4f41461035d57806349d462ef1461037f57806356d5d4751461039f57600080fd5b806323b872dd116101d157806323b872dd1461029f5780632ead72f6146102bf578063313ce567146102df578063395093511461031d57600080fd5b806306fdde0314610203578063095ea7b31461022e5780630e72cc061461025e57806318160ddd14610280575b600080fd5b34801561020f57600080fd5b506102186106f6565b604051610225919061267f565b60405180910390f35b34801561023a57600080fd5b5061024e6102493660046126bb565b610788565b6040519015158152602001610225565b34801561026a57600080fd5b5061027e6102793660046126e5565b6107a2565b005b34801561028c57600080fd5b506035545b604051908152602001610225565b3480156102ab57600080fd5b5061024e6102ba366004612700565b6108bd565b3480156102cb57600080fd5b506102916102da366004612750565b6108e1565b3480156102eb57600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610225565b34801561032957600080fd5b5061024e6103383660046126bb565b610900565b34801561034957600080fd5b5061027e6103583660046126e5565b61094c565b34801561036957600080fd5b50610372610a62565b604051610225919061276b565b34801561038b57600080fd5b5061027e61039a3660046127b5565b610a73565b61027e6103ad3660046127d1565b610a99565b3480156103be57600080fd5b506102916103cd3660046126e5565b610c0d565b3480156103de57600080fd5b5061027e610c38565b3480156103f357600080fd5b5061027e61040236600461289d565b610c4c565b34801561041357600080fd5b50610291610422366004612750565b60fc6020526000908152604090205481565b34801561044057600080fd5b506097546104619073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610225565b6102916104943660046128df565b610ca7565b3480156104a557600080fd5b506104cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610225565b3480156104ee57600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610461565b34801561051957600080fd5b50610218610cb5565b34801561052e57600080fd5b5061024e61053d3660046126bb565b610cc4565b34801561054e57600080fd5b5061024e61055d3660046126bb565b610d95565b34801561056e57600080fd5b5061027e61057d366004612912565b610da3565b34801561058e57600080fd5b5061027e61059d3660046127b5565b610e2d565b3480156105ae57600080fd5b506104617f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e257600080fd5b506102916105f1366004612987565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b34801561063557600080fd5b506098546104619073ffffffffffffffffffffffffffffffffffffffff1681565b34801561066257600080fd5b5061027e6106713660046129ba565b610e3f565b34801561068257600080fd5b5061027e610691366004612b00565b610f1e565b3480156106a257600080fd5b5061027e6106b1366004612750565b6110be565b3480156106c257600080fd5b506102916106d1366004612750565b6110d2565b3480156106e257600080fd5b5061027e6106f13660046126e5565b6110ed565b60606036805461070590612b6d565b80601f016020809104026020016040519081016040528092919081815260200182805461073190612b6d565b801561077e5780601f106107535761010080835404028352916020019161077e565b820191906000526020600020905b81548152906001019060200180831161076157829003601f168201915b5050505050905090565b6000336107968185856111a1565b60019150505b92915050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806107dc575073ffffffffffffffffffffffffffffffffffffffff8116155b61086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610875611354565b50609880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000336108cb8582856113d5565b6108d68585856114a6565b506001949350505050565b6000806108f860c963ffffffff8086169061171c16565b949350505050565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906107969082908690610947908790612bef565b6111a1565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610986575073ffffffffffffffffffffffffffffffffffffffff8116155b610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e67000000000000000000000000000000000000000000000000006064820152608401610864565b610a1a611354565b50609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610a6e60c9611735565b905090565b610a7b611354565b63ffffffff91909116600090815260fc6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f78000000000000000000000000000000000000000000000000000000000000006064820152608401610864565b6000610b69856117f0565b9050838114610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e6465720000000000000000000000000000000000000000000000000000006064820152608401610864565b610c0685858585611856565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081205461079c565b610c40611354565b610c4a60006118e0565b565b610c54611354565b8060005b81811015610ca157610c8f848483818110610c7557610c75612c02565b9050602002016020810190610c8a9190612750565b611957565b610c9a600182612bef565b9050610c58565b50505050565b60006108f8848484346119ac565b60606037805461070590612b6d565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610864565b6108d682868684036111a1565b6000336107968185856114a6565b610dab611354565b60005b81811015610e2857610e16838383818110610dcb57610dcb612c02565b610de19260206040909202019081019150612750565b848484818110610df357610df3612c02565b9050604002016020013563ffffffff909116600090815260fc6020526040902055565b610e21600182612bef565b9050610dae565b505050565b610e35611354565b610a958282611a1b565b610e47611354565b828114610eb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610864565b8260005b81811015610f1657610f04868683818110610ed157610ed1612c02565b9050602002016020810190610ee69190612750565b858584818110610ef857610ef8612c02565b90506020020135611a1b565b610f0f600182612bef565b9050610eb4565b505050505050565b600054610100900460ff1615808015610f3e5750600054600160ff909116105b80610f585750303b158015610f58575060005460ff166001145b610fe4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610864565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561104257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61104c8383611a31565b6110563385611ad2565b8015610ca157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6110c6611354565b6110cf81611957565b50565b600061079c8260405180602001604052806000815250611bc7565b6110f5611354565b73ffffffffffffffffffffffffffffffffffffffff8116611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610864565b6110cf816118e0565b73ffffffffffffffffffffffffffffffffffffffff8316611243576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff82166112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610864565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ca15781811015611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610864565b610ca184848484036111a1565b73ffffffffffffffffffffffffffffffffffffffff8316611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff82166115ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061170f9086815260200190565b60405180910390a3610ca1565b6000806117298484611be0565b915091505b9250929050565b6060600061174283611c1a565b9050805167ffffffffffffffff81111561175e5761175e612a26565b604051908082528060200260200182016040528015611787578160200160208202803683370190505b50915060005b81518110156117e9578181815181106117a8576117a8612c02565b60200260200101518382815181106117c2576117c2612c02565b63ffffffff90921660209283029190910190910152806117e181612c31565b91505061178d565b5050919050565b6000808061180860c963ffffffff8087169061171c16565b915091508161181685611cb5565b9061184e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864919061267f565b509392505050565b60006118628383611cec565b905060006118708484611d0b565b905036600061187f8686611d1b565b9150915061189561188d8590565b848484611d2b565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516118ce91815260200190565b60405180910390a35050505050505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61196b60c963ffffffff80841690611d3516565b61197482611cb5565b90610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864919061267f565b6000806119b884611d41565b90506119cf86846119ca888886611d61565b611d90565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec86604051611a0a91815260200190565b60405180910390a350949350505050565b610a9560c963ffffffff808516908490611db316565b600054610100900460ff16611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610864565b610a958282611dbe565b73ffffffffffffffffffffffffffffffffffffffff8216611b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610864565b8060356000828254611b619190612bef565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600080611bd3846117f0565b90506108f8848285611e6e565b6000818152600283016020526040812054819080611c0f57611c028585611f4f565b92506000915061172e9050565b60019250905061172e565b60606000611c2783611f5b565b90508067ffffffffffffffff811115611c4257611c42612a26565b604051908082528060200260200182016040528015611c6b578160200160208202803683370190505b50915060005b818110156117e957611c838482611f66565b60001c838281518110611c9857611c98612c02565b602090810291909101015280611cad81612c31565b915050611c71565b6060611cc68263ffffffff16611f72565b604051602001611cd69190612c69565b6040516020818303038152906040529050919050565b6000611cfb6020828486612cae565b611d0491612cd8565b9392505050565b6000611cfb604060208486612cae565b3660006117298360408187612cae565b610ca18484611ad2565b6000611d048383612030565b6060611d4d338361204d565b505060408051602081019091526000815290565b6060838383604051602001611d7893929190612d14565b60405160208183030381529060405290509392505050565b600080611d9c856117f0565b9050611daa85828686612213565b95945050505050565b610ca18383836122f7565b600054610100900460ff16611e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610864565b6036611e618382612d87565b506037610e288282612d87565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585611eb889612314565b6097546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152611f0e959493929173ffffffffffffffffffffffffffffffffffffffff1690600401612ea1565b602060405180830381865afa158015611f2b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190612f01565b6000611d048383612336565b600061079c8261234e565b6000611d048383612358565b60606000611f7f83612382565b600101905060008167ffffffffffffffff811115611f9f57611f9f612a26565b6040519080825280601f01601f191660200182016040528015611fc9576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611fd357509392505050565b60008181526002830160205260408120819055611d048383612464565b73ffffffffffffffffffffffffffffffffffffffff82166120f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260336020526040902054818110156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610864565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08487878661225e8b612314565b6097546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526122b4959493929173ffffffffffffffffffffffffffffffffffffffff1690600401612ea1565b60206040518083038185885af11580156122d2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611daa9190612f01565b600082815260028401602052604081208290556108f88484612470565b63ffffffff8116600090815260fc602052604090205460609061079c9061247c565b60008181526001830160205260408120541515611d04565b600061079c825490565b600082600001828154811061236f5761236f612c02565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123cb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106123f7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061241557662386f26fc10000830492506010015b6305f5e100831061242d576305f5e100830492506008015b612710831061244157612710830492506004015b60648310612453576064830492506002015b600a831061079c5760010192915050565b6000611d04838361249a565b6000611d04838361258d565b606061079c60008333604051806020016040528060008152506125dc565b600081815260018301602052604081205480156125835760006124be600183612f1a565b85549091506000906124d290600190612f1a565b90508181146125375760008660000182815481106124f2576124f2612c02565b906000526020600020015490508087600001848154811061251557612515612c02565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061254857612548612f2d565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061079c565b600091505061079c565b60008181526001830160205260408120546125d45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561079c565b50600061079c565b60606001858585856040516020016125f8959493929190612f5c565b6040516020818303038152906040529050949350505050565b60005b8381101561262c578181015183820152602001612614565b50506000910152565b6000815180845261264d816020860160208601612611565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611d046020830184612635565b803573ffffffffffffffffffffffffffffffffffffffff811681146126b657600080fd5b919050565b600080604083850312156126ce57600080fd5b6126d783612692565b946020939093013593505050565b6000602082840312156126f757600080fd5b611d0482612692565b60008060006060848603121561271557600080fd5b61271e84612692565b925061272c60208501612692565b9150604084013590509250925092565b803563ffffffff811681146126b657600080fd5b60006020828403121561276257600080fd5b611d048261273c565b6020808252825182820181905260009190848201906040850190845b818110156127a957835163ffffffff1683529284019291840191600101612787565b50909695505050505050565b600080604083850312156127c857600080fd5b6126d78361273c565b600080600080606085870312156127e757600080fd5b6127f08561273c565b935060208501359250604085013567ffffffffffffffff8082111561281457600080fd5b818701915087601f83011261282857600080fd5b81358181111561283757600080fd5b88602082850101111561284957600080fd5b95989497505060200194505050565b60008083601f84011261286a57600080fd5b50813567ffffffffffffffff81111561288257600080fd5b6020830191508360208260051b850101111561172e57600080fd5b600080602083850312156128b057600080fd5b823567ffffffffffffffff8111156128c757600080fd5b6128d385828601612858565b90969095509350505050565b6000806000606084860312156128f457600080fd5b6128fd8461273c565b95602085013595506040909401359392505050565b6000806020838503121561292557600080fd5b823567ffffffffffffffff8082111561293d57600080fd5b818501915085601f83011261295157600080fd5b81358181111561296057600080fd5b8660208260061b850101111561297557600080fd5b60209290920196919550909350505050565b6000806040838503121561299a57600080fd5b6129a383612692565b91506129b160208401612692565b90509250929050565b600080600080604085870312156129d057600080fd5b843567ffffffffffffffff808211156129e857600080fd5b6129f488838901612858565b90965094506020870135915080821115612a0d57600080fd5b50612a1a87828801612858565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612a6657600080fd5b813567ffffffffffffffff80821115612a8157612a81612a26565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612ac757612ac7612a26565b81604052838152866020858801011115612ae057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215612b1557600080fd5b83359250602084013567ffffffffffffffff80821115612b3457600080fd5b612b4087838801612a55565b93506040860135915080821115612b5657600080fd5b50612b6386828701612a55565b9150509250925092565b600181811c90821680612b8157607f821691505b602082108103612bba577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561079c5761079c612bc0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c6257612c62612bc0565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612ca181601f850160208701612611565b91909101601f0192915050565b60008085851115612cbe57600080fd5b83861115612ccb57600080fd5b5050820193919092039150565b8035602083101561079c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251612d32816040850160208701612611565b91909101604001949350505050565b601f821115610e2857600081815260208120601f850160051c81016020861015612d685750805b601f850160051c820191505b81811015610f1657828155600101612d74565b815167ffffffffffffffff811115612da157612da1612a26565b612db581612daf8454612b6d565b84612d41565b602080601f831160018114612e085760008415612dd25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610f16565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612e5557888601518255948401946001909101908401612e36565b5085821015612e9157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a060408201526000612ec660a0830186612635565b8281036060840152612ed88186612635565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b600060208284031215612f1357600080fd5b5051919050565b8181038181111561079c5761079c612bc0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612fd0816056850160208701612611565b91909101605601969550505050505056fea26469706673582212205aa5f0cd0c461fd17913962c42f0282b08b0b421867bd51d53622eeb1a26654164736f6c63430008130033", - sourceMap: - "440:1683:220:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:98:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4781:197;;;;;;;;;;-1:-1:-1;4781:197:6;;;;;:::i;:::-;;:::i;:::-;;;1454:14:282;;1447:22;1429:41;;1417:2;1402:18;4781:197:6;1289:187:282;2265:191:117;;;;;;;;;;-1:-1:-1;2265:191:117;;;;;:::i;:::-;;:::i;:::-;;3592:106:6;;;;;;;;;;-1:-1:-1;3679:12:6;;3592:106;;;1818:25:282;;;1806:2;1791:18;3592:106:6;1672:177:282;5540:256:6;;;;;;;;;;-1:-1:-1;5540:256:6;;;;;:::i;:::-;;:::i;1454:158:118:-;;;;;;;;;;-1:-1:-1;1454:158:118;;;;;:::i;:::-;;:::i;1187:90:220:-;;;;;;;;;;-1:-1:-1;1187:90:220;;2898:4:282;1261:9:220;2886:17:282;2868:36;;2856:2;2841:18;1187:90:220;2726:184:282;6191:234:6;;;;;;;;;;-1:-1:-1;6191:234:6;;;;;:::i;:::-;;:::i;1954:123:117:-;;;;;;;;;;-1:-1:-1;1954:123:117;;;;;:::i;:::-;;:::i;1051:104:118:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1048:122:116:-;;;;;;;;;;-1:-1:-1;1048:122:116;;;;;:::i;:::-;;:::i;3450:338:118:-;;;;;;:::i;:::-;;:::i;1283:233:220:-;;;;;;;;;;-1:-1:-1;1283:233:220;;;;;:::i;:::-;;:::i;2064:101:1:-;;;;;;;;;;;;;:::i;3012:257:118:-;;;;;;;;;;-1:-1:-1;3012:257:118;;;;;:::i;:::-;;:::i;281:48:116:-;;;;;;;;;;-1:-1:-1;281:48:116;;;;;:::i;:::-;;;;;;;;;;;;;;770:29:117;;;;;;;;;;-1:-1:-1;770:29:117;;;;;;;;;;;5574:42:282;5562:55;;;5544:74;;5532:2;5517:18;770:29:117;5371:253:282;2072:270:232;;;;;;:::i;:::-;;:::i;728:35:117:-;;;;;;;;;;;;;;;;;;6128:10:282;6116:23;;;6098:42;;6086:2;6071:18;728:35:117;5954:192:282;1441:85:1;;;;;;;;;;-1:-1:-1;1513:6:1;;;;1441:85;;2706:102:6;;;;;;;;;;;;;:::i;6912:427::-;;;;;;;;;;-1:-1:-1;6912:427:6;;;;;:::i;:::-;;:::i;4077:189::-;;;;;;;;;;-1:-1:-1;4077:189:6;;;;;:::i;:::-;;:::i;623:250:116:-;;;;;;;;;;-1:-1:-1;623:250:116;;;;;:::i;:::-;;:::i;2112:164:118:-;;;;;;;;;;-1:-1:-1;2112:164:118;;;;;:::i;:::-;;:::i;688:33:117:-;;;;;;;;;;;;;;;4324:149:6;;;;;;;;;;-1:-1:-1;4324:149:6;;;;;:::i;:::-;4439:18;;;;4413:7;4439:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4324:149;806:57:117;;;;;;;;;;-1:-1:-1;806:57:117;;;;;;;;2493:373:118;;;;;;;;;;-1:-1:-1;2493:373:118;;;;;:::i;:::-;;:::i;921:260:220:-;;;;;;;;;;-1:-1:-1;921:260:220;;;;;:::i;:::-;;:::i;1737:120:118:-;;;;;;;;;;-1:-1:-1;1737:120:118;;;;;:::i;:::-;;:::i;1437:172:116:-;;;;;;;;;;-1:-1:-1;1437:172:116;;;;;:::i;:::-;;:::i;2314:198:1:-;;;;;;;;;;-1:-1:-1;2314:198:1;;;;;:::i;:::-;;:::i;2495:98:6:-;2549:13;2581:5;2574:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:98;:::o;4781:197::-;4864:4;929:10:17;4918:32:6;929:10:17;4934:7:6;4943:6;4918:8;:32::i;:::-;4967:4;4960:11;;;4781:197;;;;;:::o;2265:191:117:-;2359:7;1702:19:52;;;;:23;;1230:56:117;;;-1:-1:-1;1263:23:117;;;;1230:56;1209:142;;;;;;;11082:2:282;1209:142:117;;;11064:21:282;11121:2;11101:18;;;11094:30;11160:34;11140:18;;;11133:62;11231:9;11211:18;;;11204:37;11258:19;;1209:142:117;;;;;;;;;1334:13:1::1;:11;:13::i;:::-;-1:-1:-1::0;2388:24:117::2;:61:::0;;;::::2;;::::0;;;::::2;::::0;;;::::2;::::0;;2265:191::o;5540:256:6:-;5637:4;929:10:17;5693:38:6;5709:4;929:10:17;5724:6:6;5693:15;:38::i;:::-;5741:27;5751:4;5757:2;5761:6;5741:9;:27::i;:::-;-1:-1:-1;5785:4:6;;5540:256;-1:-1:-1;;;;5540:256:6:o;1454:158:118:-;1516:7;;1557:24;:8;:24;;;;;:15;:24;:::i;:::-;1535:46;1454:158;-1:-1:-1;;;;1454:158:118:o;6191:234:6:-;929:10:17;6279:4:6;4439:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;6279:4;;929:10:17;6333:64:6;;929:10:17;;4439:27:6;;6358:38;;6386:10;;6358:38;:::i;:::-;6333:8;:64::i;1954:123:117:-;2012:5;1702:19:52;;;;:23;;1230:56:117;;;-1:-1:-1;1263:23:117;;;;1230:56;1209:142;;;;;;;11082:2:282;1209:142:117;;;11064:21:282;11121:2;11101:18;;;11094:30;11160:34;11140:18;;;11133:62;11231:9;11211:18;;;11204:37;11258:19;;1209:142:117;10880:403:282;1209:142:117;1334:13:1::1;:11;:13::i;:::-;-1:-1:-1::0;2039:4:117::2;:31:::0;;;::::2;;::::0;;;::::2;::::0;;;::::2;::::0;;1954:123::o;1051:104:118:-;1093:15;1127:21;:8;:19;:21::i;:::-;1120:28;;1051:104;:::o;1048:122:116:-;1334:13:1;:11;:13::i;:::-;1907:22:116;;;;;;;;;:14;:22;;;;;:28;1048:122::o;1132:31::-:1;1048:122:::0;;:::o;3450:338:118:-;1516:10:117;:30;1538:7;1516:30;;1495:110;;;;;;;11809:2:282;1495:110:117;;;11791:21:282;11848:2;11828:18;;;11821:30;11887:34;11867:18;;;11860:62;11958:3;11938:18;;;11931:31;11979:19;;1495:110:117;11607:397:282;1495:110:117;3610:15:118::1;3628:30;3650:7;3628:21;:30::i;:::-;3610:48;;3687:7;3676;:18;3668:68;;;::::0;::::1;::::0;;12211:2:282;3668:68:118::1;::::0;::::1;12193:21:282::0;12250:2;12230:18;;;12223:30;12289:34;12269:18;;;12262:62;12360:7;12340:18;;;12333:35;12385:19;;3668:68:118::1;12009:401:282::0;3668:68:118::1;3746:35;3754:7;3763;3772:8;;3746:7;:35::i;:::-;3600:188;3450:338:::0;;;;:::o;1283:233:220:-;3856:18:6;;;1443:7:220;3856:18:6;;;:9;:18;;;;;;1473:36:220;3756:125:6;2064:101:1;1334:13;:11;:13::i;:::-;2128:30:::1;2155:1;2128:18;:30::i;:::-;2064:101::o:0;3012:257:118:-;1334:13:1;:11;:13::i;:::-;3139:8:118;3122:14:::1;3164:99;3188:6;3184:1;:10;3164:99;;;3218:34;3240:8;;3249:1;3240:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3218:21;:34::i;:::-;3196:6;3201:1;3196:6:::0;::::1;:::i;:::-;;;3164:99;;;;3112:157;3012:257:::0;;:::o;2072:270:232:-;2222:17;2270:65;2286:12;2300:10;2312:11;2325:9;2270:15;:65::i;2706:102:6:-;2762:13;2794:7;2787:14;;;;;:::i;6912:427::-;929:10:17;7005:4:6;4439:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;7005:4;;929:10:17;7149:15:6;7129:16;:35;;7121:85;;;;;;;12806:2:282;7121:85:6;;;12788:21:282;12845:2;12825:18;;;12818:30;12884:34;12864:18;;;12857:62;12955:7;12935:18;;;12928:35;12980:19;;7121:85:6;12604:401:282;7121:85:6;7240:60;7249:5;7256:7;7284:15;7265:16;:34;7240:8;:60::i;4077:189::-;4156:4;929:10:17;4210:28:6;929:10:17;4227:2:6;4231:6;4210:9;:28::i;623:250:116:-;1334:13:1;:11;:13::i;:::-;737:9:116::1;732:135;752:21:::0;;::::1;732:135;;;797:59;816:10;;827:1;816:13;;;;;;;:::i;:::-;:20;::::0;::::1;:13;::::0;;::::1;;:20:::0;;::::1;::::0;-1:-1:-1;816:20:116::1;:::i;:::-;838:10;;849:1;838:13;;;;;;;:::i;:::-;;;;;;:17;;;1907:22:::0;;;;;;;;:14;:22;;;;;:28;1832:110;797:59:::1;775:6;780:1;775:6:::0;::::1;:::i;:::-;;;732:135;;;;623:250:::0;;:::o;2112:164:118:-;1334:13:1;:11;:13::i;:::-;2232:37:118::1;2252:7;2261;2232:19;:37::i;2493:373::-:0;1334:13:1;:11;:13::i;:::-;2648:36:118;;::::1;2640:56;;;::::0;::::1;::::0;;13212:2:282;2640:56:118::1;::::0;::::1;13194:21:282::0;13251:1;13231:18;;;13224:29;13289:9;13269:18;;;13262:37;13316:18;;2640:56:118::1;13010:330:282::0;2640:56:118::1;2723:8:::0;2706:14:::1;2748:112;2772:6;2768:1;:10;2748:112;;;2802:47;2822:8;;2831:1;2822:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2835:10;;2846:1;2835:13;;;;;;;:::i;:::-;;;;;;;2802:19;:47::i;:::-;2780:6;2785:1;2780:6:::0;::::1;:::i;:::-;;;2748:112;;;;2630:236;2493:373:::0;;;;:::o;921:260:220:-;3279:19:5;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:5;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:5;1702:19:52;:23;;;3387:66:5;;-1:-1:-1;3436:12:5;;;;;:17;3387:66;3325:201;;;;;;;13547:2:282;3325:201:5;;;13529:21:282;13586:2;13566:18;;;13559:30;13625:34;13605:18;;;13598:62;13696:16;13676:18;;;13669:44;13730:19;;3325:201:5;13345:410:282;3325:201:5;3536:12;:16;;;;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;;;;;;;3562:65;1105:28:220::1;1118:5;1125:7;1105:12;:28::i;:::-;1143:31;1149:10;1161:12;1143:5;:31::i;:::-;3651:14:5::0;3647:99;;;3697:5;3681:21;;;;;;3721:14;;-1:-1:-1;2868:36:282;;3721:14:5;;2856:2:282;2841:18;3721:14:5;;;;;;;3269:483;921:260:220;;;:::o;1737:120:118:-;1334:13:1;:11;:13::i;:::-;1820:30:118::1;1842:7;1820:21;:30::i;:::-;1737:120:::0;:::o;1437:172:116:-;1526:19;1564:38;1579:18;1564:38;;;;;;;;;;;;:14;:38::i;2314:198:1:-;1334:13;:11;:13::i;:::-;2402:22:::1;::::0;::::1;2394:73;;;::::0;::::1;::::0;;14161:2:282;2394:73:1::1;::::0;::::1;14143:21:282::0;14200:2;14180:18;;;14173:30;14239:34;14219:18;;;14212:62;14310:8;14290:18;;;14283:36;14336:19;;2394:73:1::1;13959:402:282::0;2394:73:1::1;2477:28;2496:8;2477:18;:28::i;10794:340:6:-:0;10895:19;;;10887:68;;;;;;;14568:2:282;10887:68:6;;;14550:21:282;14607:2;14587:18;;;14580:30;14646:34;14626:18;;;14619:62;14717:6;14697:18;;;14690:34;14741:19;;10887:68:6;14366:400:282;10887:68:6;10973:21;;;10965:68;;;;;;;14973:2:282;10965:68:6;;;14955:21:282;15012:2;14992:18;;;14985:30;15051:34;15031:18;;;15024:62;15122:4;15102:18;;;15095:32;15144:19;;10965:68:6;14771:398:282;10965:68:6;11044:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11095:32;;1818:25:282;;;11095:32:6;;1791:18:282;11095:32:6;;;;;;;10794:340;;;:::o;1599:130:1:-;1513:6;;1662:23;1513:6;929:10:17;1662:23:1;1654:68;;;;;;;15376:2:282;1654:68:1;;;15358:21:282;;;15395:18;;;15388:30;15454:34;15434:18;;;15427:62;15506:18;;1654:68:1;15174:356:282;11415:411:6;4439:18;;;;11515:24;4439:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;11601:17;11581:37;;11577:243;;11662:6;11642:16;:26;;11634:68;;;;;;;15737:2:282;11634:68:6;;;15719:21:282;15776:2;15756:18;;;15749:30;15815:31;15795:18;;;15788:59;15864:18;;11634:68:6;15535:353:282;11634:68:6;11744:51;11753:5;11760:7;11788:6;11769:16;:25;11744:8;:51::i;7793:788::-;7889:18;;;7881:68;;;;;;;16095:2:282;7881:68:6;;;16077:21:282;16134:2;16114:18;;;16107:30;16173:34;16153:18;;;16146:62;16244:7;16224:18;;;16217:35;16269:19;;7881:68:6;15893:401:282;7881:68:6;7967:16;;;7959:64;;;;;;;16501:2:282;7959:64:6;;;16483:21:282;16540:2;16520:18;;;16513:30;16579:34;16559:18;;;16552:62;16650:5;16630:18;;;16623:33;16673:19;;7959:64:6;16299:399:282;7959:64:6;8105:15;;;8083:19;8105:15;;;:9;:15;;;;;;8138:21;;;;8130:72;;;;;;;16905:2:282;8130:72:6;;;16887:21:282;16944:2;16924:18;;;16917:30;16983:34;16963:18;;;16956:62;17054:8;17034:18;;;17027:36;17080:19;;8130:72:6;16703:402:282;8130:72:6;8236:15;;;;;;;;:9;:15;;;;;;8254:20;;;8236:38;;8451:13;;;;;;;;;;:23;;;;;;8500:26;;;;;;8268:6;1818:25:282;;1806:2;1791:18;;1672:177;8500:26:6;;;;;;;;8537:37;623:250:116;1719:174:173;1823:4;;1855:31;:3;1881;1855:17;:31::i;:::-;1848:38;;;;1719:174;;;;;;:::o;1044:333::-;1131:21;1164:28;1195:9;1200:3;1195:4;:9::i;:::-;1164:40;;1235:11;:18;1222:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1222:32:173;;1214:40;;1269:9;1264:107;1288:11;:18;1284:1;:22;1264:107;;;1345:11;1357:1;1345:14;;;;;;;;:::i;:::-;;;;;;;1327:5;1333:1;1327:8;;;;;;;;:::i;:::-;:33;;;;:8;;;;;;;;;;;:33;1308:3;;;;:::i;:::-;;;;1264:107;;;;1154:223;1044:333;;;:::o;5294:253:118:-;5378:7;;;5433:24;:8;:24;;;;;:15;:24;:::i;:::-;5397:60;;;;5475:9;5486:29;5507:7;5486:20;:29::i;:::-;5467:49;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5533:7:118;5294:253;-1:-1:-1;;;5294:253:118:o;4461:413:232:-;4594:17;4614:20;:8;;:18;:20::i;:::-;4594:40;;4644:14;4661:17;:8;;:15;:17::i;:::-;4644:34;;4688:23;;4714:19;:8;;:17;:19::i;:::-;4688:45;;;;4743:59;4755:28;:9;411:4:181;298:127;4755:28:232;4785:6;4793:8;;4743:11;:59::i;:::-;4849:9;4840:7;4817:50;;;4860:6;4817:50;;;;1818:25:282;;1806:2;1791:18;;1672:177;4817:50:232;;;;;;;;4584:290;;;;4461:413;;;;:::o;2666:187:1:-;2758:6;;;;2774:17;;;;;;;;;;;2806:40;;2758:6;;;2774:17;2758:6;;2806:40;;2739:16;;2806:40;2729:124;2666:187;:::o;4419:145:118:-;4501:24;:8;:24;;;;;:15;:24;:::i;:::-;4527:29;4548:7;4527:20;:29::i;:::-;4493:64;;;;;;;;;;;;;;:::i;2987:488:232:-;3151:17;3180:21;3204:32;3224:11;3204:19;:32::i;:::-;3180:56;;3258:138;3281:12;3307:11;3332:54;3352:10;3364:11;3377:8;3332:19;:54::i;:::-;3258:9;:138::i;:::-;3246:150;;3444:10;3430:12;3411:57;;;3456:11;3411:57;;;;1818:25:282;;1806:2;1791:18;;1672:177;3411:57:232;;;;;;;;3170:305;2987:488;;;;;;:::o;4162:150:118:-;4274:31;:8;:31;;;;;4296:8;;4274:12;:31;:::i;2118:147:6:-;5374:13:5;;;;;;;5366:69;;;;;;;17512:2:282;5366:69:5;;;17494:21:282;17551:2;17531:18;;;17524:30;17590:34;17570:18;;;17563:62;17661:13;17641:18;;;17634:41;17692:19;;5366:69:5;17310:407:282;5366:69:5;2220:38:6::1;2243:5;2250:7;2220:22;:38::i;8857:535::-:0;8940:21;;;8932:65;;;;;;;17924:2:282;8932:65:6;;;17906:21:282;17963:2;17943:18;;;17936:30;18002:33;17982:18;;;17975:61;18053:18;;8932:65:6;17722:355:282;8932:65:6;9084:6;9068:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;9236:18:6;;;;;;;:9;:18;;;;;;;;:28;;;;;;9289:37;1818:25:282;;;9289:37:6;;1791:18:282;9289:37:6;;;;;;;1048:122:116;;:::o;6352:296:118:-;6483:7;6502:15;6520:41;6542:18;6520:21;:41::i;:::-;6502:59;;6578:63;6599:18;6619:7;6628:12;6578:20;:63::i;4166:298:62:-;4251:4;4292:16;;;:11;;;:16;;;;;;4251:4;;4292:16;4318:140;;4365:18;4374:3;4379;4365:8;:18::i;:::-;4357:39;-1:-1:-1;4393:1:62;;-1:-1:-1;4357:39:62;;-1:-1:-1;4357:39:62;4318:140;4435:4;;-1:-1:-1;4441:5:62;-1:-1:-1;4427:20:62;;725:313:173;806:22;840:15;858:19;:3;:17;:19::i;:::-;840:37;;909:7;895:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;895:22:173;;887:30;;932:9;927:105;951:7;947:1;:11;927:105;;;998:22;:3;1018:1;998:19;:22::i;:::-;990:31;;979:5;985:1;979:8;;;;;;;;:::i;:::-;;;;;;;;;;:42;960:3;;;;:::i;:::-;;;;927:105;;5553:248:118;5636:13;5762:18;:7;:16;;;:18::i;:::-;5680:114;;;;;;;;:::i;:::-;;;;;;;;;;;;;5661:133;;5553:248;;;:::o;321:121:231:-;387:7;421:13;431:2;387:7;421;;:13;:::i;:::-;413:22;;;:::i;:::-;406:29;321:121;-1:-1:-1;;;321:121:231:o;448:128::-;511:7;553:14;564:2;561;553:7;;:14;:::i;724:131::-;803:14;;836:12;:7;844:2;836:7;;:12;:::i;1933:188:220:-;2088:26;2094:10;2106:7;2088:5;:26::i;1899:160:173:-;1998:4;2021:31;:3;2047;2021:17;:31::i;1633:185:220:-;1720:12;1744:26;1750:10;1762:7;1744:5;:26::i;:::-;-1:-1:-1;;1787:9:220;;;;;;;;;-1:-1:-1;1787:9:220;;;1633:185::o;99:216:231:-;229:12;277:10;289:7;298:9;260:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;253:55;;99:216;;;;;:::o;6021:325:118:-;6166:7;6185:15;6203:41;6225:18;6203:21;:41::i;:::-;6185:59;;6273:66;6289:18;6309:7;6318:6;6326:12;6273:15;:66::i;:::-;6254:85;6021:325;-1:-1:-1;;;;;6021:325:118:o;1383:162:173:-;1503:35;:3;1526;1532:5;1503:14;:35::i;2271:159:6:-;5374:13:5;;;;;;;5366:69;;;;;;;17512:2:282;5366:69:5;;;17494:21:282;17551:2;17531:18;;;17524:30;17590:34;17570:18;;;17563:62;17661:13;17641:18;;;17634:41;17692:19;;5366:69:5;17310:407:282;5366:69:5;2383:5:6::1;:13;2391:5:::0;2383;:13:::1;:::i;:::-;-1:-1:-1::0;2406:7:6::1;:17;2416:7:::0;2406;:17:::1;:::i;3793:402:117:-:0;3952:7;3990;:21;;;4029:18;4065:10;4093:12;4123:29;4133:18;4123:9;:29::i;:::-;4170:4;;3990:198;;;;;;;;;;;;;;;;4170:4;;;3990:198;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3128:140:62:-;3215:4;3238:23;:3;3257;3238:18;:23::i;3358:123::-;3430:7;3456:18;:3;:16;:18::i;7096:129:63:-;7170:7;7196:22;7200:3;7212:5;7196:3;:22::i;447:696:56:-;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:56;-1:-1:-1;604:41:56;-1:-1:-1;765:28:56;;;781:2;765:28;820:280;851:5;;990:8;985:2;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:56;820:280;1064:21;-1:-1:-1;1120:6:56;447:696;-1:-1:-1;;;447:696:56:o;2885:164:62:-;2965:4;2988:16;;;:11;;;:16;;;;;2981:23;;;3021:21;2988:3;3000;3021:16;:21::i;9712:659:6:-;9795:21;;;9787:67;;;;;;;23279:2:282;9787:67:6;;;23261:21:282;23318:2;23298:18;;;23291:30;23357:34;23337:18;;;23330:62;23428:3;23408:18;;;23401:31;23449:19;;9787:67:6;23077:397:282;9787:67:6;9950:18;;;9925:22;9950:18;;;:9;:18;;;;;;9986:24;;;;9978:71;;;;;;;23681:2:282;9978:71:6;;;23663:21:282;23720:2;23700:18;;;23693:30;23759:34;23739:18;;;23732:62;23830:4;23810:18;;;23803:32;23852:19;;9978:71:6;23479:398:282;9978:71:6;10083:18;;;;;;;:9;:18;;;;;;;;10104:23;;;10083:44;;10220:12;:22;;;;;;;10268:37;1818:25:282;;;10083:18:6;;;10268:37;;1791:18:282;10268:37:6;;;;;;;732:135:116::1;623:250:::0;;:::o;3361:426:117:-;3534:7;3572;:16;;;3596:6;3621:18;3657:10;3685:12;3715:29;3725:18;3715:9;:29::i;:::-;3762:4;;3572:208;;;;;;;;;;;;;;;;3762:4;;;3572:208;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2543:174:62:-;2635:4;2651:16;;;:11;;;:16;;;;;:24;;;2692:18;2651:3;2663;2692:13;:18::i;1615:211:116:-;1790:28;;;;;;;:14;:28;;;;;;1709:12;;1752:67;;:37;:67::i;6420:138:63:-;6500:4;4351:19;;;:12;;;:19;;;;;;:24;;6523:28;4255:127;6639:115;6702:7;6728:19;6736:3;4545:18;;4463:107;4912:118;4979:7;5005:3;:11;;5017:5;5005:18;;;;;;;;:::i;:::-;;;;;;;;;4998:25;;4912:118;;;;:::o;10139:916:60:-;10192:7;;10276:8;10267:17;;10263:103;;10313:8;10304:17;;;-1:-1:-1;10349:2:60;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:60;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:60;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:60;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:60;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:60;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:60:o;6210:129:63:-;6283:4;6306:26;6314:3;6326:5;6306:7;:26::i;5919:123::-;5989:4;6012:23;6017:3;6029:5;6012:4;:23::i;4969:173:130:-;5051:12;5082:53;5105:1;5109:9;5120:10;5082:53;;;;;;;;;;;;:14;:53::i;2786:1388:63:-;2852:4;2989:19;;;:12;;;:19;;;;;;3023:15;;3019:1149;;3392:21;3416:14;3429:1;3416:10;:14;:::i;:::-;3464:18;;3392:38;;-1:-1:-1;3444:17:63;;3464:22;;3485:1;;3464:22;:::i;:::-;3444:42;;3518:13;3505:9;:26;3501:398;;3551:17;3571:3;:11;;3583:9;3571:22;;;;;;;;:::i;:::-;;;;;;;;;3551:42;;3722:9;3693:3;:11;;3705:13;3693:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3805:23;;;:12;;;:23;;;;;:36;;;3501:398;3977:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4069:3;:12;;:19;4082:5;4069:19;;;;;;;;;;;4062:26;;;4110:4;4103:11;;;;;;;3019:1149;4152:5;4145:12;;;;;2214:404;2277:4;4351:19;;;:12;;;:19;;;;;;2293:319;;-1:-1:-1;2335:23:63;;;;;;;;:11;:23;;;;;;;;;;;;;2515:18;;2493:19;;;:12;;;:19;;;;;;:40;;;;2547:11;;2293:319;-1:-1:-1;2596:5:63;2589:12;;3957:401:130;4134:12;1025:1;4236:9;4263;4290:14;4322:15;4177:174;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4158:193;;3957:401;;;;;;:::o;14:250:282:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:282;238:16;;231:27;14:250::o;269:330::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;513:2;501:15;518:66;497:88;488:98;;;;588:4;484:109;;269:330;-1:-1:-1;;269:330:282:o;604:220::-;753:2;742:9;735:21;716:4;773:45;814:2;803:9;799:18;791:6;773:45;:::i;829:196::-;897:20;;957:42;946:54;;936:65;;926:93;;1015:1;1012;1005:12;926:93;829:196;;;:::o;1030:254::-;1098:6;1106;1159:2;1147:9;1138:7;1134:23;1130:32;1127:52;;;1175:1;1172;1165:12;1127:52;1198:29;1217:9;1198:29;:::i;:::-;1188:39;1274:2;1259:18;;;;1246:32;;-1:-1:-1;;;1030:254:282:o;1481:186::-;1540:6;1593:2;1581:9;1572:7;1568:23;1564:32;1561:52;;;1609:1;1606;1599:12;1561:52;1632:29;1651:9;1632:29;:::i;1854:328::-;1931:6;1939;1947;2000:2;1988:9;1979:7;1975:23;1971:32;1968:52;;;2016:1;2013;2006:12;1968:52;2039:29;2058:9;2039:29;:::i;:::-;2029:39;;2087:38;2121:2;2110:9;2106:18;2087:38;:::i;:::-;2077:48;;2172:2;2161:9;2157:18;2144:32;2134:42;;1854:328;;;;;:::o;2187:163::-;2254:20;;2314:10;2303:22;;2293:33;;2283:61;;2340:1;2337;2330:12;2355:184;2413:6;2466:2;2454:9;2445:7;2441:23;2437:32;2434:52;;;2482:1;2479;2472:12;2434:52;2505:28;2523:9;2505:28;:::i;2915:647::-;3084:2;3136:21;;;3206:13;;3109:18;;;3228:22;;;3055:4;;3084:2;3307:15;;;;3281:2;3266:18;;;3055:4;3350:186;3364:6;3361:1;3358:13;3350:186;;;3429:13;;3444:10;3425:30;3413:43;;3511:15;;;;3476:12;;;;3386:1;3379:9;3350:186;;;-1:-1:-1;3553:3:282;;2915:647;-1:-1:-1;;;;;;2915:647:282:o;3567:252::-;3634:6;3642;3695:2;3683:9;3674:7;3670:23;3666:32;3663:52;;;3711:1;3708;3701:12;3663:52;3734:28;3752:9;3734:28;:::i;3824:731::-;3911:6;3919;3927;3935;3988:2;3976:9;3967:7;3963:23;3959:32;3956:52;;;4004:1;4001;3994:12;3956:52;4027:28;4045:9;4027:28;:::i;:::-;4017:38;;4102:2;4091:9;4087:18;4074:32;4064:42;;4157:2;4146:9;4142:18;4129:32;4180:18;4221:2;4213:6;4210:14;4207:34;;;4237:1;4234;4227:12;4207:34;4275:6;4264:9;4260:22;4250:32;;4320:7;4313:4;4309:2;4305:13;4301:27;4291:55;;4342:1;4339;4332:12;4291:55;4382:2;4369:16;4408:2;4400:6;4397:14;4394:34;;;4424:1;4421;4414:12;4394:34;4469:7;4464:2;4455:6;4451:2;4447:15;4443:24;4440:37;4437:57;;;4490:1;4487;4480:12;4437:57;3824:731;;;;-1:-1:-1;;4521:2:282;4513:11;;-1:-1:-1;;;3824:731:282:o;4560:366::-;4622:8;4632:6;4686:3;4679:4;4671:6;4667:17;4663:27;4653:55;;4704:1;4701;4694:12;4653:55;-1:-1:-1;4727:20:282;;4770:18;4759:30;;4756:50;;;4802:1;4799;4792:12;4756:50;4839:4;4831:6;4827:17;4815:29;;4899:3;4892:4;4882:6;4879:1;4875:14;4867:6;4863:27;4859:38;4856:47;4853:67;;;4916:1;4913;4906:12;4931:435;5016:6;5024;5077:2;5065:9;5056:7;5052:23;5048:32;5045:52;;;5093:1;5090;5083:12;5045:52;5133:9;5120:23;5166:18;5158:6;5155:30;5152:50;;;5198:1;5195;5188:12;5152:50;5237:69;5298:7;5289:6;5278:9;5274:22;5237:69;:::i;:::-;5325:8;;5211:95;;-1:-1:-1;4931:435:282;-1:-1:-1;;;;4931:435:282:o;5629:320::-;5705:6;5713;5721;5774:2;5762:9;5753:7;5749:23;5745:32;5742:52;;;5790:1;5787;5780:12;5742:52;5813:28;5831:9;5813:28;:::i;:::-;5803:38;5888:2;5873:18;;5860:32;;-1:-1:-1;5939:2:282;5924:18;;;5911:32;;5629:320;-1:-1:-1;;;5629:320:282:o;6382:651::-;6504:6;6512;6565:2;6553:9;6544:7;6540:23;6536:32;6533:52;;;6581:1;6578;6571:12;6533:52;6621:9;6608:23;6650:18;6691:2;6683:6;6680:14;6677:34;;;6707:1;6704;6697:12;6677:34;6745:6;6734:9;6730:22;6720:32;;6790:7;6783:4;6779:2;6775:13;6771:27;6761:55;;6812:1;6809;6802:12;6761:55;6852:2;6839:16;6878:2;6870:6;6867:14;6864:34;;;6894:1;6891;6884:12;6864:34;6947:7;6942:2;6932:6;6929:1;6925:14;6921:2;6917:23;6913:32;6910:45;6907:65;;;6968:1;6965;6958:12;6907:65;6999:2;6991:11;;;;;7021:6;;-1:-1:-1;6382:651:282;;-1:-1:-1;;;;6382:651:282:o;7544:260::-;7612:6;7620;7673:2;7661:9;7652:7;7648:23;7644:32;7641:52;;;7689:1;7686;7679:12;7641:52;7712:29;7731:9;7712:29;:::i;:::-;7702:39;;7760:38;7794:2;7783:9;7779:18;7760:38;:::i;:::-;7750:48;;7544:260;;;;;:::o;8075:770::-;8196:6;8204;8212;8220;8273:2;8261:9;8252:7;8248:23;8244:32;8241:52;;;8289:1;8286;8279:12;8241:52;8329:9;8316:23;8358:18;8399:2;8391:6;8388:14;8385:34;;;8415:1;8412;8405:12;8385:34;8454:69;8515:7;8506:6;8495:9;8491:22;8454:69;:::i;:::-;8542:8;;-1:-1:-1;8428:95:282;-1:-1:-1;8630:2:282;8615:18;;8602:32;;-1:-1:-1;8646:16:282;;;8643:36;;;8675:1;8672;8665:12;8643:36;;8714:71;8777:7;8766:8;8755:9;8751:24;8714:71;:::i;:::-;8075:770;;;;-1:-1:-1;8804:8:282;-1:-1:-1;;;;8075:770:282:o;8850:184::-;8902:77;8899:1;8892:88;8999:4;8996:1;8989:15;9023:4;9020:1;9013:15;9039:778;9082:5;9135:3;9128:4;9120:6;9116:17;9112:27;9102:55;;9153:1;9150;9143:12;9102:55;9189:6;9176:20;9215:18;9252:2;9248;9245:10;9242:36;;;9258:18;;:::i;:::-;9392:2;9386:9;9454:4;9446:13;;9297:66;9442:22;;;9466:2;9438:31;9434:40;9422:53;;;9490:18;;;9510:22;;;9487:46;9484:72;;;9536:18;;:::i;:::-;9576:10;9572:2;9565:22;9611:2;9603:6;9596:18;9657:3;9650:4;9645:2;9637:6;9633:15;9629:26;9626:35;9623:55;;;9674:1;9671;9664:12;9623:55;9738:2;9731:4;9723:6;9719:17;9712:4;9704:6;9700:17;9687:54;9785:1;9778:4;9773:2;9765:6;9761:15;9757:26;9750:37;9805:6;9796:15;;;;;;9039:778;;;;:::o;9822:611::-;9919:6;9927;9935;9988:2;9976:9;9967:7;9963:23;9959:32;9956:52;;;10004:1;10001;9994:12;9956:52;10040:9;10027:23;10017:33;;10101:2;10090:9;10086:18;10073:32;10124:18;10165:2;10157:6;10154:14;10151:34;;;10181:1;10178;10171:12;10151:34;10204:50;10246:7;10237:6;10226:9;10222:22;10204:50;:::i;:::-;10194:60;;10307:2;10296:9;10292:18;10279:32;10263:48;;10336:2;10326:8;10323:16;10320:36;;;10352:1;10349;10342:12;10320:36;;10375:52;10419:7;10408:8;10397:9;10393:24;10375:52;:::i;:::-;10365:62;;;9822:611;;;;;:::o;10438:437::-;10517:1;10513:12;;;;10560;;;10581:61;;10635:4;10627:6;10623:17;10613:27;;10581:61;10688:2;10680:6;10677:14;10657:18;10654:38;10651:218;;10725:77;10722:1;10715:88;10826:4;10823:1;10816:15;10854:4;10851:1;10844:15;10651:218;;10438:437;;;:::o;11288:184::-;11340:77;11337:1;11330:88;11437:4;11434:1;11427:15;11461:4;11458:1;11451:15;11477:125;11542:9;;;11563:10;;;11560:36;;;11576:18;;:::i;12415:184::-;12467:77;12464:1;12457:88;12564:4;12561:1;12554:15;12588:4;12585:1;12578:15;17110:195;17149:3;17180:66;17173:5;17170:77;17167:103;;17250:18;;:::i;:::-;-1:-1:-1;17297:1:282;17286:13;;17110:195::o;18082:453::-;18334:33;18329:3;18322:46;18304:3;18397:6;18391:13;18413:75;18481:6;18476:2;18471:3;18467:12;18460:4;18452:6;18448:17;18413:75;:::i;:::-;18508:16;;;;18526:2;18504:25;;18082:453;-1:-1:-1;;18082:453:282:o;18540:331::-;18645:9;18656;18698:8;18686:10;18683:24;18680:44;;;18720:1;18717;18710:12;18680:44;18749:6;18739:8;18736:20;18733:40;;;18769:1;18766;18759:12;18733:40;-1:-1:-1;;18795:23:282;;;18840:25;;;;;-1:-1:-1;18540:331:282:o;18876:315::-;18996:19;;19035:2;19027:11;;19024:161;;;19107:66;19096:2;19092:12;;;19089:1;19085:20;19081:93;19070:105;18876:315;;;;:::o;19196:424::-;19411:6;19406:3;19399:19;19448:6;19443:2;19438:3;19434:12;19427:28;19381:3;19484:6;19478:13;19500:73;19566:6;19561:2;19556:3;19552:12;19547:2;19539:6;19535:15;19500:73;:::i;:::-;19593:16;;;;19611:2;19589:25;;19196:424;-1:-1:-1;;;;19196:424:282:o;19751:545::-;19853:2;19848:3;19845:11;19842:448;;;19889:1;19914:5;19910:2;19903:17;19959:4;19955:2;19945:19;20029:2;20017:10;20013:19;20010:1;20006:27;20000:4;19996:38;20065:4;20053:10;20050:20;20047:47;;;-1:-1:-1;20088:4:282;20047:47;20143:2;20138:3;20134:12;20131:1;20127:20;20121:4;20117:31;20107:41;;20198:82;20216:2;20209:5;20206:13;20198:82;;;20261:17;;;20242:1;20231:13;20198:82;;20532:1471;20658:3;20652:10;20685:18;20677:6;20674:30;20671:56;;;20707:18;;:::i;:::-;20736:97;20826:6;20786:38;20818:4;20812:11;20786:38;:::i;:::-;20780:4;20736:97;:::i;:::-;20888:4;;20952:2;20941:14;;20969:1;20964:782;;;;21790:1;21807:6;21804:89;;;-1:-1:-1;21859:19:282;;;21853:26;21804:89;20438:66;20429:1;20425:11;;;20421:84;20417:89;20407:100;20513:1;20509:11;;;20404:117;21906:81;;20934:1063;;20964:782;19698:1;19691:14;;;19735:4;19722:18;;21012:66;21000:79;;;21177:236;21191:7;21188:1;21185:14;21177:236;;;21280:19;;;21274:26;21259:42;;21372:27;;;;21340:1;21328:14;;;;21207:19;;21177:236;;;21181:3;21441:6;21432:7;21429:19;21426:261;;;21502:19;;;21496:26;21603:66;21585:1;21581:14;;;21597:3;21577:24;21573:97;21569:102;21554:118;21539:134;;21426:261;-1:-1:-1;;;;;21733:1:282;21717:14;;;21713:22;21700:36;;-1:-1:-1;20532:1471:282:o;22008:686::-;22322:10;22314:6;22310:23;22299:9;22292:42;22370:6;22365:2;22354:9;22350:18;22343:34;22413:3;22408:2;22397:9;22393:18;22386:31;22273:4;22440:46;22481:3;22470:9;22466:19;22458:6;22440:46;:::i;:::-;22534:9;22526:6;22522:22;22517:2;22506:9;22502:18;22495:50;22562:33;22588:6;22580;22562:33;:::i;:::-;22554:41;;;22644:42;22636:6;22632:55;22626:3;22615:9;22611:19;22604:84;22008:686;;;;;;;;:::o;22699:184::-;22769:6;22822:2;22810:9;22801:7;22797:23;22793:32;22790:52;;;22838:1;22835;22828:12;22790:52;-1:-1:-1;22861:16:282;;22699:184;-1:-1:-1;22699:184:282:o;24071:128::-;24138:9;;;24159:11;;;24156:37;;;24173:18;;:::i;24204:184::-;24256:77;24253:1;24246:88;24353:4;24350:1;24343:15;24377:4;24374:1;24367:15;24393:718;24684:66;24675:6;24670:3;24666:16;24662:89;24657:3;24650:102;24781:6;24777:1;24772:3;24768:11;24761:27;24818:6;24813:2;24808:3;24804:12;24797:28;24876:66;24867:6;24863:2;24859:15;24855:88;24850:2;24845:3;24841:12;24834:110;24632:3;24973:6;24967:13;24989:75;25057:6;25052:2;25047:3;25043:12;25036:4;25028:6;25024:17;24989:75;:::i;:::-;25084:16;;;;25102:2;25080:25;;24393:718;-1:-1:-1;;;;;;24393:718:282:o", - linkReferences: {}, - immutableReferences: { - "17634": [ - { start: 1460, length: 32 }, - { start: 2737, length: 32 }, - { start: 7794, length: 32 }, - { start: 8727, length: 32 }, - ], - "17636": [{ start: 1195, length: 32 }], - "30511": [{ start: 755, length: 32 }], - }, - }, - methodIdentifiers: { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "decreaseAllowance(address,uint256)": "a457c2d7", - "destinationGas(uint32)": "775313a1", - "domains()": "440df4f4", - "enrollRemoteRouter(uint32,bytes32)": "b49c53a7", - "enrollRemoteRouters(uint32[],bytes32[])": "e9198bf9", - "handle(uint32,bytes32,bytes)": "56d5d475", - "hook()": "7f5a7c7b", - "increaseAllowance(address,uint256)": "39509351", - "initialize(uint256,string,string)": "eedfca5f", - "interchainSecurityModule()": "de523cf3", - "localDomain()": "8d3638f4", - "mailbox()": "d5438eae", - "name()": "06fdde03", - "owner()": "8da5cb5b", - "quoteGasPayment(uint32)": "f2ed8c53", - "renounceOwnership()": "715018a6", - "routers(uint32)": "2ead72f6", - "setDestinationGas((uint32,uint256)[])": "b1bd6436", - "setDestinationGas(uint32,uint256)": "49d462ef", - "setHook(address)": "3dfd3873", - "setInterchainSecurityModule(address)": "0e72cc06", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "transferOwnership(address)": "f2fde38b", - "transferRemote(uint32,bytes32,uint256)": "81b4e8b4", - "unenrollRemoteRouter(uint32)": "efae508a", - "unenrollRemoteRouters(uint32[])": "71a15b38", - }, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"__decimals","type":"uint8"},{"internalType":"address","name":"_mailbox","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"origin","type":"uint32"},{"indexed":true,"internalType":"bytes32","name":"recipient","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReceivedTransferRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"destination","type":"uint32"},{"indexed":true,"internalType":"bytes32","name":"recipient","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SentTransferRemote","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":"amount","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"destinationGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"domains","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_domain","type":"uint32"},{"internalType":"bytes32","name":"_router","type":"bytes32"}],"name":"enrollRemoteRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"_domains","type":"uint32[]"},{"internalType":"bytes32[]","name":"_addresses","type":"bytes32[]"}],"name":"enrollRemoteRouters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_origin","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"handle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"hook","outputs":[{"internalType":"contract IPostDispatchHook","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"interchainSecurityModule","outputs":[{"internalType":"contract IInterchainSecurityModule","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"localDomain","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mailbox","outputs":[{"internalType":"contract IMailbox","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_destinationDomain","type":"uint32"}],"name":"quoteGasPayment","outputs":[{"internalType":"uint256","name":"_gasPayment","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_domain","type":"uint32"}],"name":"routers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDestinationGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"uint256","name":"gas","type":"uint256"}],"internalType":"struct GasRouter.GasRouterConfig[]","name":"gasConfigs","type":"tuple[]"}],"name":"setDestinationGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_hook","type":"address"}],"name":"setHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_module","type":"address"}],"name":"setInterchainSecurityModule","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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_destination","type":"uint32"},{"internalType":"bytes32","name":"_recipient","type":"bytes32"},{"internalType":"uint256","name":"_amountOrId","type":"uint256"}],"name":"transferRemote","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_domain","type":"uint32"}],"name":"unenrollRemoteRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"_domains","type":"uint32[]"}],"name":"unenrollRemoteRouters","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Abacus Works","details":"Supply on each chain is not constant but the aggregate supply across all chains is.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"ReceivedTransferRemote(uint32,bytes32,uint256)":{"details":"Emitted on `_handle` when a transfer message is processed.","params":{"amount":"The amount of tokens minted on the destination chain.","origin":"The identifier of the origin chain.","recipient":"The address of the recipient on the destination chain."}},"SentTransferRemote(uint32,bytes32,uint256)":{"details":"Emitted on `transferRemote` when a transfer message is dispatched.","params":{"amount":"The amount of tokens burnt on the origin chain.","destination":"The identifier of the destination chain.","recipient":"The address of the recipient on the destination chain."}},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it\'s overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"enrollRemoteRouter(uint32,bytes32)":{"params":{"_domain":"The domain of the remote Application Router","_router":"The address of the remote Application Router"}},"enrollRemoteRouters(uint32[],bytes32[])":{"params":{"_addresses":"The addresses of the remote Application Routers","_domains":"The domains of the remote Application Routers"}},"handle(uint32,bytes32,bytes)":{"params":{"_message":"The message","_origin":"The origin domain","_sender":"The sender address"}},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"initialize(uint256,string,string)":{"params":{"_name":"The name of the token.","_symbol":"The symbol of the token.","_totalSupply":"The initial supply of the token."}},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"quoteGasPayment(uint32)":{"params":{"_destinationDomain":"The domain of the router."},"returns":{"_gasPayment":"Payment computed by the registered InterchainGasPaymaster."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"routers(uint32)":{"details":"Returns 0 address if no router is enrolled for the given domain","params":{"_domain":"The remote domain ID."},"returns":{"_0":"router The address of the Router contract for the given domain"}},"setDestinationGas((uint32,uint256)[])":{"params":{"gasConfigs":"The array of GasRouterConfig structs"}},"setDestinationGas(uint32,uint256)":{"params":{"domain":"The destination domain ID","gas":"The gas limit"}},"setHook(address)":{"params":{"_hook":"The address of the hook contract."}},"setInterchainSecurityModule(address)":{"params":{"_module":"The address of the interchain security module contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``\'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferRemote(uint32,bytes32,uint256)":{"details":"Delegates transfer logic to `_transferFromSender` implementation.Emits `SentTransferRemote` event on the origin chain.","params":{"_amountOrId":"The amount or identifier of tokens to be sent to the remote recipient.","_destination":"The identifier of the destination chain.","_recipient":"The address of the recipient on the destination chain."},"returns":{"messageId":"The identifier of the dispatched message."}},"unenrollRemoteRouter(uint32)":{"params":{"_domain":"The domain of the remote Application Router"}},"unenrollRemoteRouters(uint32[])":{"params":{"_domains":"The domains of the remote Application Routers"}}},"title":"Hyperlane ERC20 Token Router that extends ERC20 with remote transfer functionality.","version":1},"userdoc":{"kind":"user","methods":{"enrollRemoteRouter(uint32,bytes32)":{"notice":"Register the address of a Router contract for the same Application on a remote chain"},"enrollRemoteRouters(uint32[],bytes32[])":{"notice":"Batch version of `enrollRemoteRouter`"},"handle(uint32,bytes32,bytes)":{"notice":"Handles an incoming message"},"initialize(uint256,string,string)":{"notice":"Initializes the Hyperlane router, ERC20 metadata, and mints initial supply to deployer."},"quoteGasPayment(uint32)":{"notice":"Returns the gas payment required to dispatch a message to the given domain\'s router."},"routers(uint32)":{"notice":"Returns the address of the Router contract for the given domain"},"setDestinationGas((uint32,uint256)[])":{"notice":"Sets the gas amount dispatched for each configured domain."},"setDestinationGas(uint32,uint256)":{"notice":"Sets the gas amount dispatched for each configured domain."},"setHook(address)":{"notice":"Sets the address of the application\'s custom hook."},"setInterchainSecurityModule(address)":{"notice":"Sets the address of the application\'s custom interchain security module."},"transferRemote(uint32,bytes32,uint256)":{"notice":"Transfers `_amountOrId` token to `_recipient` on `_destination` domain."},"unenrollRemoteRouter(uint32)":{"notice":"Unregister the domain"},"unenrollRemoteRouters(uint32[])":{"notice":"Batch version of `unenrollRemoteRouter`"}},"version":1}},"settings":{"compilationTarget":{"contracts/token/HypERC20.sol":"HypERC20"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"../node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98","license":"MIT","urls":["bzz-raw://99c8cb3cd19a44bbfb6612605affb7d8b06cee1f6aa9362a37a8672b4f7eeaf8","dweb:/ipfs/QmasyxFDBUp7k5KFgfDWEzM8PYSKEq7GVznzMJ1VxVRF4B"]},"../node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","license":"MIT","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"]},"../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xd14a627157b9a411d2410713e5dd3a377e9064bd5c194a90748bbf27ea625784","license":"MIT","urls":["bzz-raw://29d6a502187e88fdb4ac51319b6cfc82e7ba886a435480e229e5f838d2da55ee","dweb:/ipfs/QmQNWKr3axXvQowZi31ydXRdeZ7UnE7oN8XAz9FCkx1JhN"]},"../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","license":"MIT","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"]},"../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol":{"keccak256":"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb","license":"MIT","urls":["bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d","dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ"]},"../node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","license":"MIT","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"]},"../node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","license":"MIT","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"]},"../node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"../node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","license":"MIT","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"]},"../node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","license":"MIT","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"]},"../node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","license":"MIT","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"]},"../node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x7ebfe2422bc571599c2ec20577d7848e1e7a0acf85fa7c2d9636618bbbdf6fca","license":"MIT","urls":["bzz-raw://77fb3f64d470c92c3142e3c07d2f18ad78723a1f1e680a251dcde37e865d0636","dweb:/ipfs/QmXAeNPRRGfNSRxi1d17QjkNTBZFemhiMzJVvEJgMWwqUW"]},"../node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514","license":"MIT","urls":["bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df","dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW"]},"contracts/client/GasRouter.sol":{"keccak256":"0xe399a57c8ea3746c50192259c7199d6835f778db1f3f3109368576a444f9c2aa","license":"MIT OR Apache-2.0","urls":["bzz-raw://e8c3810c20d4a609e48aefd56de9ecf35e8cc4ef6412c03792cd02401e0955e0","dweb:/ipfs/QmSKimeS3juaof5SHqtpZhQLSrNTmdjdrjwf4cHvCKRRi3"]},"contracts/client/MailboxClient.sol":{"keccak256":"0xbe8ca8a65272d4728dd5edba78821949e85d6ecb01b03c8981e474b47386dd1c","license":"MIT OR Apache-2.0","urls":["bzz-raw://eb88bd1004f4f581461b5c0462e1551330f7a79c799400c2ace477f56ce04af8","dweb:/ipfs/QmesKb466xFMsdYzUr49cQf4cvmMv8u1s1jxPW6ST4NwfU"]},"contracts/client/Router.sol":{"keccak256":"0x9566d5dab0be03c336616795b3bd80a825df496f83ff261b163b3c64d3f19139","license":"MIT OR Apache-2.0","urls":["bzz-raw://71a991791591e2f495f54afdf6c527d0f1825c9ccd6a557e87b4a8962aaca018","dweb:/ipfs/QmZJHeamA2Er1wwp5ZnTq5L7bGVHQcVNgEHfjwG8ByavDj"]},"contracts/hooks/libs/StandardHookMetadata.sol":{"keccak256":"0x28e8be5b70f6b5b7c6a52c4906635639ae5ef3fe2ac970b7c30299e939b38e42","license":"MIT OR Apache-2.0","urls":["bzz-raw://6a3a41ef53096ed385dd593a8b32955c12ced1b210102f84990f30ee1311b2f4","dweb:/ipfs/QmZyNfa4tpL5WhpGW73RCzu6rWMFW88Uvm54J5gq1hvXgQ"]},"contracts/interfaces/IInterchainSecurityModule.sol":{"keccak256":"0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce","license":"MIT OR Apache-2.0","urls":["bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2","dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p"]},"contracts/interfaces/IMailbox.sol":{"keccak256":"0x9cd728ba304279775818f8c7b4c02f8c5dd2b28e051ec466dbe36129be01a6ee","license":"MIT OR Apache-2.0","urls":["bzz-raw://23461e80c67508d6f0f94a317c48d99a1942209ebc306b50f843b3f1cc920bac","dweb:/ipfs/QmXbJSFtHfxpHwtvGZJBodSDcQHAb6fGsPU17w11dapVnC"]},"contracts/interfaces/IMessageRecipient.sol":{"keccak256":"0x145e8332a91295a710deb3cb1ab689144262ef6ec66d9570c600b778e9dd964d","license":"MIT OR Apache-2.0","urls":["bzz-raw://a22ad97b1d8d3a37e8b4ad1519b893ac7cdf718c3a340999ffef4fb04060f119","dweb:/ipfs/QmXp3w8yPm1vHyNrrSLr4YtRMP44eLadHnXSAjSecqB7H6"]},"contracts/interfaces/hooks/IPostDispatchHook.sol":{"keccak256":"0xe315e6ecacc18c836349bb2792187066c3c743aaa7f2504d181be255f5c9632e","license":"MIT OR Apache-2.0","urls":["bzz-raw://d0c8b081c967e112cddb70a6377a1c8e3950dd225fc29dcda607071cfb168447","dweb:/ipfs/QmcorLLZueFg69B8iaU3rr42CrEP7PPH3HeJLspV5WAoKZ"]},"contracts/libs/EnumerableMapExtended.sol":{"keccak256":"0xbd661cdeba756caf35191b71a85461a9ff79c047ec98ec05063748dfc0419595","license":"MIT OR Apache-2.0","urls":["bzz-raw://d88af58f2f47a6ad7c24abef9419d1474cba6e372830cc82794e37943dc3d9ce","dweb:/ipfs/QmbaTGUtTbtxmVnZWTq5Kt6ATmHXmrUssXPXGd6F3NkEMc"]},"contracts/libs/Message.sol":{"keccak256":"0x5319af5ade07bcb021d6373f0713f24f34431def78cda16fea6755f580fb5e78","license":"MIT OR Apache-2.0","urls":["bzz-raw://f531eecebd22a535398def83b078aff4f72d88940a0e9474ad3244a555f00d53","dweb:/ipfs/QmQjtjpf4qwaM9QVyWBsogRvZeokKESTVdsX3z9mt1wZFa"]},"contracts/libs/TypeCasts.sol":{"keccak256":"0x7e3608c35e1109fc137cea688760f9c10223b1e7d110be113ad44ff716974ead","license":"MIT OR Apache-2.0","urls":["bzz-raw://6fff310e714caca96e809f5a56884a2e9edf842d928929d6228d6593ad8f3d52","dweb:/ipfs/QmSHQmcZV2GF8CUJjny128rDThPEDvUvrfA5kBs7kAK5GJ"]},"contracts/token/HypERC20.sol":{"keccak256":"0x4fc979556b9721226bc92e40c5aee813088d3fd500d2f8756c986bede88019a4","license":"Apache-2.0","urls":["bzz-raw://817bac39e36a3d8c5b570640f14b2e5b7102ea7917cf2fe4b5f8329cfdb67fcb","dweb:/ipfs/QmSRFVEbe19GnKLg8Dw9hYxcJL1YDmrrwDZU6twUSt6XzA"]},"contracts/token/libs/TokenMessage.sol":{"keccak256":"0x0bd8b076985c44231f6675f3bc968db8f8bd471af6ed919fb06a8f5d3bc8be0a","license":"MIT OR Apache-2.0","urls":["bzz-raw://ec1f44eb7bf46b47d9af2482c2c70b9083cee92f25c93e3517b0e19462496337","dweb:/ipfs/QmayA6NmKCJK6Pkt4s9LT4vaKbYrQrUrWCmrUqkiH3nFSb"]},"contracts/token/libs/TokenRouter.sol":{"keccak256":"0xf18c6e532a210d523623e741e82d87cebf3dc635810dd1a6d1a1fe38640e4257","license":"Apache-2.0","urls":["bzz-raw://ff70c78187265fbd3028625854073db566c353f4e93c0649e1683328a4000844","dweb:/ipfs/QmNd23vddN3gYU6wydrCBWc888HQUc1ZHtUXUktt2xLnBX"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { internalType: "uint8", name: "__decimals", type: "uint8" }, - { internalType: "address", name: "_mailbox", type: "address" }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - indexed: true, - }, - { - internalType: "address", - name: "spender", - type: "address", - indexed: true, - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - indexed: false, - }, - ], - type: "event", - name: "Approval", - anonymous: false, - }, - { - inputs: [ - { - internalType: "uint8", - name: "version", - type: "uint8", - indexed: false, - }, - ], - type: "event", - name: "Initialized", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "previousOwner", - type: "address", - indexed: true, - }, - { - internalType: "address", - name: "newOwner", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "OwnershipTransferred", - anonymous: false, - }, - { - inputs: [ - { - internalType: "uint32", - name: "origin", - type: "uint32", - indexed: true, - }, - { - internalType: "bytes32", - name: "recipient", - type: "bytes32", - indexed: true, - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - indexed: false, - }, - ], - type: "event", - name: "ReceivedTransferRemote", - anonymous: false, - }, - { - inputs: [ - { - internalType: "uint32", - name: "destination", - type: "uint32", - indexed: true, - }, - { - internalType: "bytes32", - name: "recipient", - type: "bytes32", - indexed: true, - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - indexed: false, - }, - ], - type: "event", - name: "SentTransferRemote", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - indexed: true, - }, - { - internalType: "address", - name: "to", - type: "address", - indexed: true, - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - indexed: false, - }, - ], - type: "event", - name: "Transfer", - anonymous: false, - }, - { - inputs: [ - { internalType: "address", name: "owner", type: "address" }, - { internalType: "address", name: "spender", type: "address" }, - ], - stateMutability: "view", - type: "function", - name: "allowance", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - }, - { - inputs: [ - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "approve", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - }, - { - inputs: [ - { internalType: "address", name: "_account", type: "address" }, - ], - stateMutability: "view", - type: "function", - name: "balanceOf", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "decimals", - outputs: [{ internalType: "uint8", name: "", type: "uint8" }], - }, - { - inputs: [ - { internalType: "address", name: "spender", type: "address" }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "decreaseAllowance", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - }, - { - inputs: [{ internalType: "uint32", name: "", type: "uint32" }], - stateMutability: "view", - type: "function", - name: "destinationGas", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "domains", - outputs: [{ internalType: "uint32[]", name: "", type: "uint32[]" }], - }, - { - inputs: [ - { internalType: "uint32", name: "_domain", type: "uint32" }, - { internalType: "bytes32", name: "_router", type: "bytes32" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "enrollRemoteRouter", - }, - { - inputs: [ - { - internalType: "uint32[]", - name: "_domains", - type: "uint32[]", - }, - { - internalType: "bytes32[]", - name: "_addresses", - type: "bytes32[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "enrollRemoteRouters", - }, - { - inputs: [ - { internalType: "uint32", name: "_origin", type: "uint32" }, - { internalType: "bytes32", name: "_sender", type: "bytes32" }, - { internalType: "bytes", name: "_message", type: "bytes" }, - ], - stateMutability: "payable", - type: "function", - name: "handle", - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "hook", - outputs: [ - { - internalType: "contract IPostDispatchHook", - name: "", - type: "address", - }, - ], - }, - { - inputs: [ - { internalType: "address", name: "spender", type: "address" }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "increaseAllowance", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - }, - { - inputs: [ - { - internalType: "uint256", - name: "_totalSupply", - type: "uint256", - }, - { internalType: "string", name: "_name", type: "string" }, - { internalType: "string", name: "_symbol", type: "string" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "initialize", - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "interchainSecurityModule", - outputs: [ - { - internalType: "contract IInterchainSecurityModule", - name: "", - type: "address", - }, - ], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "localDomain", - outputs: [{ internalType: "uint32", name: "", type: "uint32" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "mailbox", - outputs: [ - { - internalType: "contract IMailbox", - name: "", - type: "address", - }, - ], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "name", - outputs: [{ internalType: "string", name: "", type: "string" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "owner", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [ - { - internalType: "uint32", - name: "_destinationDomain", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - name: "quoteGasPayment", - outputs: [ - { - internalType: "uint256", - name: "_gasPayment", - type: "uint256", - }, - ], - }, - { - inputs: [], - stateMutability: "nonpayable", - type: "function", - name: "renounceOwnership", - }, - { - inputs: [{ internalType: "uint32", name: "_domain", type: "uint32" }], - stateMutability: "view", - type: "function", - name: "routers", - outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], - }, - { - inputs: [ - { internalType: "uint32", name: "domain", type: "uint32" }, - { internalType: "uint256", name: "gas", type: "uint256" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "setDestinationGas", - }, - { - inputs: [ - { - internalType: "struct GasRouter.GasRouterConfig[]", - name: "gasConfigs", - type: "tuple[]", - components: [ - { - internalType: "uint32", - name: "domain", - type: "uint32", - }, - { internalType: "uint256", name: "gas", type: "uint256" }, - ], - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "setDestinationGas", - }, - { - inputs: [{ internalType: "address", name: "_hook", type: "address" }], - stateMutability: "nonpayable", - type: "function", - name: "setHook", - }, - { - inputs: [ - { internalType: "address", name: "_module", type: "address" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "setInterchainSecurityModule", - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "symbol", - outputs: [{ internalType: "string", name: "", type: "string" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "totalSupply", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - }, - { - inputs: [ - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "transfer", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - }, - { - inputs: [ - { internalType: "address", name: "from", type: "address" }, - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "transferFrom", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - }, - { - inputs: [ - { internalType: "address", name: "newOwner", type: "address" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "transferOwnership", - }, - { - inputs: [ - { - internalType: "uint32", - name: "_destination", - type: "uint32", - }, - { - internalType: "bytes32", - name: "_recipient", - type: "bytes32", - }, - { - internalType: "uint256", - name: "_amountOrId", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "function", - name: "transferRemote", - outputs: [ - { - internalType: "bytes32", - name: "messageId", - type: "bytes32", - }, - ], - }, - { - inputs: [{ internalType: "uint32", name: "_domain", type: "uint32" }], - stateMutability: "nonpayable", - type: "function", - name: "unenrollRemoteRouter", - }, - { - inputs: [ - { - internalType: "uint32[]", - name: "_domains", - type: "uint32[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "unenrollRemoteRouters", - }, - ], - devdoc: { - kind: "dev", - methods: { - "allowance(address,address)": { - details: "See {IERC20-allowance}.", - }, - "approve(address,uint256)": { - details: - "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.", - }, - "decimals()": { - details: - "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.", - }, - "decreaseAllowance(address,uint256)": { - details: - "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.", - }, - "enrollRemoteRouter(uint32,bytes32)": { - params: { - _domain: "The domain of the remote Application Router", - _router: "The address of the remote Application Router", - }, - }, - "enrollRemoteRouters(uint32[],bytes32[])": { - params: { - _addresses: "The addresses of the remote Application Routers", - _domains: "The domains of the remote Application Routers", - }, - }, - "handle(uint32,bytes32,bytes)": { - params: { - _message: "The message", - _origin: "The origin domain", - _sender: "The sender address", - }, - }, - "increaseAllowance(address,uint256)": { - details: - "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.", - }, - "initialize(uint256,string,string)": { - params: { - _name: "The name of the token.", - _symbol: "The symbol of the token.", - _totalSupply: "The initial supply of the token.", - }, - }, - "name()": { details: "Returns the name of the token." }, - "owner()": { details: "Returns the address of the current owner." }, - "quoteGasPayment(uint32)": { - params: { _destinationDomain: "The domain of the router." }, - returns: { - _gasPayment: - "Payment computed by the registered InterchainGasPaymaster.", - }, - }, - "renounceOwnership()": { - details: - "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.", - }, - "routers(uint32)": { - details: - "Returns 0 address if no router is enrolled for the given domain", - params: { _domain: "The remote domain ID." }, - returns: { - _0: "router The address of the Router contract for the given domain", - }, - }, - "setDestinationGas((uint32,uint256)[])": { - params: { gasConfigs: "The array of GasRouterConfig structs" }, - }, - "setDestinationGas(uint32,uint256)": { - params: { - domain: "The destination domain ID", - gas: "The gas limit", - }, - }, - "setHook(address)": { - params: { _hook: "The address of the hook contract." }, - }, - "setInterchainSecurityModule(address)": { - params: { - _module: - "The address of the interchain security module contract.", - }, - }, - "symbol()": { - details: - "Returns the symbol of the token, usually a shorter version of the name.", - }, - "totalSupply()": { details: "See {IERC20-totalSupply}." }, - "transfer(address,uint256)": { - details: - "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.", - }, - "transferFrom(address,address,uint256)": { - details: - "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.", - }, - "transferOwnership(address)": { - details: - "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.", - }, - "transferRemote(uint32,bytes32,uint256)": { - details: - "Delegates transfer logic to `_transferFromSender` implementation.Emits `SentTransferRemote` event on the origin chain.", - params: { - _amountOrId: - "The amount or identifier of tokens to be sent to the remote recipient.", - _destination: "The identifier of the destination chain.", - _recipient: - "The address of the recipient on the destination chain.", - }, - returns: { - messageId: "The identifier of the dispatched message.", - }, - }, - "unenrollRemoteRouter(uint32)": { - params: { - _domain: "The domain of the remote Application Router", - }, - }, - "unenrollRemoteRouters(uint32[])": { - params: { - _domains: "The domains of the remote Application Routers", - }, - }, - }, - version: 1, - }, - userdoc: { - kind: "user", - methods: { - "enrollRemoteRouter(uint32,bytes32)": { - notice: - "Register the address of a Router contract for the same Application on a remote chain", - }, - "enrollRemoteRouters(uint32[],bytes32[])": { - notice: "Batch version of `enrollRemoteRouter`", - }, - "handle(uint32,bytes32,bytes)": { - notice: "Handles an incoming message", - }, - "initialize(uint256,string,string)": { - notice: - "Initializes the Hyperlane router, ERC20 metadata, and mints initial supply to deployer.", - }, - "quoteGasPayment(uint32)": { - notice: - "Returns the gas payment required to dispatch a message to the given domain's router.", - }, - "routers(uint32)": { - notice: - "Returns the address of the Router contract for the given domain", - }, - "setDestinationGas((uint32,uint256)[])": { - notice: - "Sets the gas amount dispatched for each configured domain.", - }, - "setDestinationGas(uint32,uint256)": { - notice: - "Sets the gas amount dispatched for each configured domain.", - }, - "setHook(address)": { - notice: "Sets the address of the application's custom hook.", - }, - "setInterchainSecurityModule(address)": { - notice: - "Sets the address of the application's custom interchain security module.", - }, - "transferRemote(uint32,bytes32,uint256)": { - notice: - "Transfers `_amountOrId` token to `_recipient` on `_destination` domain.", - }, - "unenrollRemoteRouter(uint32)": { notice: "Unregister the domain" }, - "unenrollRemoteRouters(uint32[])": { - notice: "Batch version of `unenrollRemoteRouter`", - }, - }, - version: 1, - }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { "contracts/token/HypERC20.sol": "HypERC20" }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "../node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": - { - keccak256: - "0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98", - urls: [ - "bzz-raw://99c8cb3cd19a44bbfb6612605affb7d8b06cee1f6aa9362a37a8672b4f7eeaf8", - "dweb:/ipfs/QmasyxFDBUp7k5KFgfDWEzM8PYSKEq7GVznzMJ1VxVRF4B", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": - { - keccak256: - "0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794", - urls: [ - "bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e", - "dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol": - { - keccak256: - "0xd14a627157b9a411d2410713e5dd3a377e9064bd5c194a90748bbf27ea625784", - urls: [ - "bzz-raw://29d6a502187e88fdb4ac51319b6cfc82e7ba886a435480e229e5f838d2da55ee", - "dweb:/ipfs/QmQNWKr3axXvQowZi31ydXRdeZ7UnE7oN8XAz9FCkx1JhN", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol": - { - keccak256: - "0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f", - urls: [ - "bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f", - "dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol": - { - keccak256: - "0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb", - urls: [ - "bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d", - "dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": - { - keccak256: - "0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422", - urls: [ - "bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b", - "dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": - { - keccak256: - "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149", - urls: [ - "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c", - "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Address.sol": { - keccak256: - "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - urls: [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Strings.sol": { - keccak256: - "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0", - urls: [ - "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f", - "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - keccak256: - "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3", - urls: [ - "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c", - "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - keccak256: - "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", - urls: [ - "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", - "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/structs/EnumerableMap.sol": - { - keccak256: - "0x7ebfe2422bc571599c2ec20577d7848e1e7a0acf85fa7c2d9636618bbbdf6fca", - urls: [ - "bzz-raw://77fb3f64d470c92c3142e3c07d2f18ad78723a1f1e680a251dcde37e865d0636", - "dweb:/ipfs/QmXAeNPRRGfNSRxi1d17QjkNTBZFemhiMzJVvEJgMWwqUW", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": - { - keccak256: - "0x9f4357008a8f7d8c8bf5d48902e789637538d8c016be5766610901b4bba81514", - urls: [ - "bzz-raw://20bf19b2b851f58a4c24543de80ae70b3e08621f9230eb335dc75e2d4f43f5df", - "dweb:/ipfs/QmSYuH1AhvJkPK8hNvoPqtExBcgTB42pPRHgTHkS5c5zYW", - ], - license: "MIT", - }, - "contracts/client/GasRouter.sol": { - keccak256: - "0xe399a57c8ea3746c50192259c7199d6835f778db1f3f3109368576a444f9c2aa", - urls: [ - "bzz-raw://e8c3810c20d4a609e48aefd56de9ecf35e8cc4ef6412c03792cd02401e0955e0", - "dweb:/ipfs/QmSKimeS3juaof5SHqtpZhQLSrNTmdjdrjwf4cHvCKRRi3", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/client/MailboxClient.sol": { - keccak256: - "0xbe8ca8a65272d4728dd5edba78821949e85d6ecb01b03c8981e474b47386dd1c", - urls: [ - "bzz-raw://eb88bd1004f4f581461b5c0462e1551330f7a79c799400c2ace477f56ce04af8", - "dweb:/ipfs/QmesKb466xFMsdYzUr49cQf4cvmMv8u1s1jxPW6ST4NwfU", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/client/Router.sol": { - keccak256: - "0x9566d5dab0be03c336616795b3bd80a825df496f83ff261b163b3c64d3f19139", - urls: [ - "bzz-raw://71a991791591e2f495f54afdf6c527d0f1825c9ccd6a557e87b4a8962aaca018", - "dweb:/ipfs/QmZJHeamA2Er1wwp5ZnTq5L7bGVHQcVNgEHfjwG8ByavDj", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/hooks/libs/StandardHookMetadata.sol": { - keccak256: - "0x28e8be5b70f6b5b7c6a52c4906635639ae5ef3fe2ac970b7c30299e939b38e42", - urls: [ - "bzz-raw://6a3a41ef53096ed385dd593a8b32955c12ced1b210102f84990f30ee1311b2f4", - "dweb:/ipfs/QmZyNfa4tpL5WhpGW73RCzu6rWMFW88Uvm54J5gq1hvXgQ", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/IInterchainSecurityModule.sol": { - keccak256: - "0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce", - urls: [ - "bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2", - "dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/IMailbox.sol": { - keccak256: - "0x9cd728ba304279775818f8c7b4c02f8c5dd2b28e051ec466dbe36129be01a6ee", - urls: [ - "bzz-raw://23461e80c67508d6f0f94a317c48d99a1942209ebc306b50f843b3f1cc920bac", - "dweb:/ipfs/QmXbJSFtHfxpHwtvGZJBodSDcQHAb6fGsPU17w11dapVnC", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/IMessageRecipient.sol": { - keccak256: - "0x145e8332a91295a710deb3cb1ab689144262ef6ec66d9570c600b778e9dd964d", - urls: [ - "bzz-raw://a22ad97b1d8d3a37e8b4ad1519b893ac7cdf718c3a340999ffef4fb04060f119", - "dweb:/ipfs/QmXp3w8yPm1vHyNrrSLr4YtRMP44eLadHnXSAjSecqB7H6", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/hooks/IPostDispatchHook.sol": { - keccak256: - "0xe315e6ecacc18c836349bb2792187066c3c743aaa7f2504d181be255f5c9632e", - urls: [ - "bzz-raw://d0c8b081c967e112cddb70a6377a1c8e3950dd225fc29dcda607071cfb168447", - "dweb:/ipfs/QmcorLLZueFg69B8iaU3rr42CrEP7PPH3HeJLspV5WAoKZ", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/EnumerableMapExtended.sol": { - keccak256: - "0xbd661cdeba756caf35191b71a85461a9ff79c047ec98ec05063748dfc0419595", - urls: [ - "bzz-raw://d88af58f2f47a6ad7c24abef9419d1474cba6e372830cc82794e37943dc3d9ce", - "dweb:/ipfs/QmbaTGUtTbtxmVnZWTq5Kt6ATmHXmrUssXPXGd6F3NkEMc", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/Message.sol": { - keccak256: - "0x5319af5ade07bcb021d6373f0713f24f34431def78cda16fea6755f580fb5e78", - urls: [ - "bzz-raw://f531eecebd22a535398def83b078aff4f72d88940a0e9474ad3244a555f00d53", - "dweb:/ipfs/QmQjtjpf4qwaM9QVyWBsogRvZeokKESTVdsX3z9mt1wZFa", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/TypeCasts.sol": { - keccak256: - "0x7e3608c35e1109fc137cea688760f9c10223b1e7d110be113ad44ff716974ead", - urls: [ - "bzz-raw://6fff310e714caca96e809f5a56884a2e9edf842d928929d6228d6593ad8f3d52", - "dweb:/ipfs/QmSHQmcZV2GF8CUJjny128rDThPEDvUvrfA5kBs7kAK5GJ", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/token/HypERC20.sol": { - keccak256: - "0x4fc979556b9721226bc92e40c5aee813088d3fd500d2f8756c986bede88019a4", - urls: [ - "bzz-raw://817bac39e36a3d8c5b570640f14b2e5b7102ea7917cf2fe4b5f8329cfdb67fcb", - "dweb:/ipfs/QmSRFVEbe19GnKLg8Dw9hYxcJL1YDmrrwDZU6twUSt6XzA", - ], - license: "Apache-2.0", - }, - "contracts/token/libs/TokenMessage.sol": { - keccak256: - "0x0bd8b076985c44231f6675f3bc968db8f8bd471af6ed919fb06a8f5d3bc8be0a", - urls: [ - "bzz-raw://ec1f44eb7bf46b47d9af2482c2c70b9083cee92f25c93e3517b0e19462496337", - "dweb:/ipfs/QmayA6NmKCJK6Pkt4s9LT4vaKbYrQrUrWCmrUqkiH3nFSb", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/token/libs/TokenRouter.sol": { - keccak256: - "0xf18c6e532a210d523623e741e82d87cebf3dc635810dd1a6d1a1fe38640e4257", - urls: [ - "bzz-raw://ff70c78187265fbd3028625854073db566c353f4e93c0649e1683328a4000844", - "dweb:/ipfs/QmNd23vddN3gYU6wydrCBWc888HQUc1ZHtUXUktt2xLnBX", - ], - license: "Apache-2.0", - }, - }, - version: 1, - }, - ast: { - absolutePath: "contracts/token/HypERC20.sol", - id: 30615, - exportedSymbols: { - ERC20Upgradeable: [965], - HypERC20: [30614], - TokenRouter: [32189], - }, - nodeType: "SourceUnit", - src: "39:2085:220", - nodes: [ - { - id: 30500, - nodeType: "PragmaDirective", - src: "39:24:220", - nodes: [], - literals: ["solidity", ">=", "0.8", ".0"], - }, - { - id: 30502, - nodeType: "ImportDirective", - src: "65:51:220", - nodes: [], - absolutePath: "contracts/token/libs/TokenRouter.sol", - file: "./libs/TokenRouter.sol", - nameLocation: "-1:-1:-1", - scope: 30615, - sourceUnit: 32190, - symbolAliases: [ - { - foreign: { - id: 30501, - name: "TokenRouter", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 32189, - src: "73:11:220", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 30504, - nodeType: "ImportDirective", - src: "118:102:220", - nodes: [], - absolutePath: - "../node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol", - file: "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol", - nameLocation: "-1:-1:-1", - scope: 30615, - sourceUnit: 966, - symbolAliases: [ - { - foreign: { - id: 30503, - name: "ERC20Upgradeable", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 965, - src: "126:16:220", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 30614, - nodeType: "ContractDefinition", - src: "440:1683:220", - nodes: [ - { - id: 30511, - nodeType: "VariableDeclaration", - src: "497:33:220", - nodes: [], - constant: false, - mutability: "immutable", - name: "_decimals", - nameLocation: "521:9:220", - scope: 30614, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - typeName: { - id: 30510, - name: "uint8", - nodeType: "ElementaryTypeName", - src: "497:5:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - visibility: "private", - }, - { - id: 30526, - nodeType: "FunctionDefinition", - src: "537:109:220", - nodes: [], - body: { - id: 30525, - nodeType: "Block", - src: "607:39:220", - nodes: [], - statements: [ - { - expression: { - id: 30523, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30521, - name: "_decimals", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30511, - src: "617:9:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - id: 30522, - name: "__decimals", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30513, - src: "629:10:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - src: "617:22:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - id: 30524, - nodeType: "ExpressionStatement", - src: "617:22:220", - }, - ], - }, - implemented: true, - kind: "constructor", - modifiers: [ - { - arguments: [ - { - id: 30518, - name: "_mailbox", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30515, - src: "597:8:220", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - id: 30519, - kind: "baseConstructorSpecifier", - modifierName: { - id: 30517, - name: "TokenRouter", - nameLocations: ["585:11:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 32189, - src: "585:11:220", - }, - nodeType: "ModifierInvocation", - src: "585:21:220", - }, - ], - name: "", - nameLocation: "-1:-1:-1", - parameters: { - id: 30516, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30513, - mutability: "mutable", - name: "__decimals", - nameLocation: "555:10:220", - nodeType: "VariableDeclaration", - scope: 30526, - src: "549:16:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - typeName: { - id: 30512, - name: "uint8", - nodeType: "ElementaryTypeName", - src: "549:5:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30515, - mutability: "mutable", - name: "_mailbox", - nameLocation: "575:8:220", - nodeType: "VariableDeclaration", - scope: 30526, - src: "567:16:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30514, - name: "address", - nodeType: "ElementaryTypeName", - src: "567:7:220", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "548:36:220", - }, - returnParameters: { - id: 30520, - nodeType: "ParameterList", - parameters: [], - src: "607:0:220", - }, - scope: 30614, - stateMutability: "nonpayable", - virtual: false, - visibility: "public", - }, - { - id: 30550, - nodeType: "FunctionDefinition", - src: "921:260:220", - nodes: [], - body: { - id: 30549, - nodeType: "Block", - src: "1058:123:220", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 30539, - name: "_name", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30531, - src: "1118:5:220", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string memory", - }, - }, - { - id: 30540, - name: "_symbol", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30533, - src: "1125:7:220", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string memory", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_string_memory_ptr", - typeString: "string memory", - }, - { - typeIdentifier: "t_string_memory_ptr", - typeString: "string memory", - }, - ], - id: 30538, - name: "__ERC20_init", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 400, - src: "1105:12:220", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - typeString: "function (string memory,string memory)", - }, - }, - id: 30541, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1105:28:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30542, - nodeType: "ExpressionStatement", - src: "1105:28:220", - }, - { - expression: { - arguments: [ - { - expression: { - id: 30544, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "1149:3:220", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 30545, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1153:6:220", - memberName: "sender", - nodeType: "MemberAccess", - src: "1149:10:220", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 30546, - name: "_totalSupply", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30529, - src: "1161:12:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - ], - id: 30543, - name: "_mint", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 777, - src: "1143:5:220", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - typeString: "function (address,uint256)", - }, - }, - id: 30547, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1143:31:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30548, - nodeType: "ExpressionStatement", - src: "1143:31:220", - }, - ], - }, - documentation: { - id: 30527, - nodeType: "StructuredDocumentation", - src: "652:264:220", - text: " @notice Initializes the Hyperlane router, ERC20 metadata, and mints initial supply to deployer.\n @param _totalSupply The initial supply of the token.\n @param _name The name of the token.\n @param _symbol The symbol of the token.", - }, - functionSelector: "eedfca5f", - implemented: true, - kind: "function", - modifiers: [ - { - id: 30536, - kind: "modifierInvocation", - modifierName: { - id: 30535, - name: "initializer", - nameLocations: ["1046:11:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 255, - src: "1046:11:220", - }, - nodeType: "ModifierInvocation", - src: "1046:11:220", - }, - ], - name: "initialize", - nameLocation: "930:10:220", - parameters: { - id: 30534, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30529, - mutability: "mutable", - name: "_totalSupply", - nameLocation: "958:12:220", - nodeType: "VariableDeclaration", - scope: 30550, - src: "950:20:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30528, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "950:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30531, - mutability: "mutable", - name: "_name", - nameLocation: "994:5:220", - nodeType: "VariableDeclaration", - scope: 30550, - src: "980:19:220", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string", - }, - typeName: { - id: 30530, - name: "string", - nodeType: "ElementaryTypeName", - src: "980:6:220", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30533, - mutability: "mutable", - name: "_symbol", - nameLocation: "1023:7:220", - nodeType: "VariableDeclaration", - scope: 30550, - src: "1009:21:220", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string", - }, - typeName: { - id: 30532, - name: "string", - nodeType: "ElementaryTypeName", - src: "1009:6:220", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "internal", - }, - ], - src: "940:96:220", - }, - returnParameters: { - id: 30537, - nodeType: "ParameterList", - parameters: [], - src: "1058:0:220", - }, - scope: 30614, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 30559, - nodeType: "FunctionDefinition", - src: "1187:90:220", - nodes: [], - body: { - id: 30558, - nodeType: "Block", - src: "1244:33:220", - nodes: [], - statements: [ - { - expression: { - id: 30556, - name: "_decimals", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30511, - src: "1261:9:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - functionReturnParameters: 30555, - id: 30557, - nodeType: "Return", - src: "1254:16:220", - }, - ], - }, - baseFunctions: [448], - functionSelector: "313ce567", - implemented: true, - kind: "function", - modifiers: [], - name: "decimals", - nameLocation: "1196:8:220", - overrides: { - id: 30552, - nodeType: "OverrideSpecifier", - overrides: [], - src: "1219:8:220", - }, - parameters: { - id: 30551, - nodeType: "ParameterList", - parameters: [], - src: "1204:2:220", - }, - returnParameters: { - id: 30555, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30554, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 30559, - src: "1237:5:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - typeName: { - id: 30553, - name: "uint8", - nodeType: "ElementaryTypeName", - src: "1237:5:220", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - visibility: "internal", - }, - ], - src: "1236:7:220", - }, - scope: 30614, - stateMutability: "view", - virtual: false, - visibility: "public", - }, - { - id: 30575, - nodeType: "FunctionDefinition", - src: "1283:233:220", - nodes: [], - body: { - id: 30574, - nodeType: "Block", - src: "1456:60:220", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 30571, - name: "_account", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30561, - src: "1500:8:220", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - ], - expression: { - id: 30569, - name: "ERC20Upgradeable", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 965, - src: "1473:16:220", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ERC20Upgradeable_$965_$", - typeString: "type(contract ERC20Upgradeable)", - }, - }, - id: 30570, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1490:9:220", - memberName: "balanceOf", - nodeType: "MemberAccess", - referencedDeclaration: 472, - src: "1473:26:220", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$_t_address_$returns$_t_uint256_$", - typeString: "function (address) view returns (uint256)", - }, - }, - id: 30572, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1473:36:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - functionReturnParameters: 30568, - id: 30573, - nodeType: "Return", - src: "1466:43:220", - }, - ], - }, - baseFunctions: [472, 32134], - functionSelector: "70a08231", - implemented: true, - kind: "function", - modifiers: [], - name: "balanceOf", - nameLocation: "1292:9:220", - overrides: { - id: 30565, - nodeType: "OverrideSpecifier", - overrides: [ - { - id: 30563, - name: "TokenRouter", - nameLocations: ["1395:11:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 32189, - src: "1395:11:220", - }, - { - id: 30564, - name: "ERC20Upgradeable", - nameLocations: ["1408:16:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 965, - src: "1408:16:220", - }, - ], - src: "1386:39:220", - }, - parameters: { - id: 30562, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30561, - mutability: "mutable", - name: "_account", - nameLocation: "1319:8:220", - nodeType: "VariableDeclaration", - scope: 30575, - src: "1311:16:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30560, - name: "address", - nodeType: "ElementaryTypeName", - src: "1311:7:220", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "1301:32:220", - }, - returnParameters: { - id: 30568, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30567, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 30575, - src: "1443:7:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30566, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "1443:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - ], - src: "1442:9:220", - }, - scope: 30614, - stateMutability: "view", - virtual: true, - visibility: "public", - }, - { - id: 30596, - nodeType: "FunctionDefinition", - src: "1633:185:220", - nodes: [], - body: { - id: 30595, - nodeType: "Block", - src: "1734:84:220", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - expression: { - id: 30585, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "1750:3:220", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 30586, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1754:6:220", - memberName: "sender", - nodeType: "MemberAccess", - src: "1750:10:220", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 30587, - name: "_amount", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30578, - src: "1762:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - ], - id: 30584, - name: "_burn", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 849, - src: "1744:5:220", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - typeString: "function (address,uint256)", - }, - }, - id: 30588, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1744:26:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30589, - nodeType: "ExpressionStatement", - src: "1744:26:220", - }, - { - expression: { - arguments: [ - { - hexValue: "", - id: 30592, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "1793:2:220", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - ], - id: 30591, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1787:5:220", - typeDescriptions: { - typeIdentifier: "t_type$_t_bytes_storage_ptr_$", - typeString: "type(bytes storage pointer)", - }, - typeName: { - id: 30590, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "1787:5:220", - typeDescriptions: {}, - }, - }, - id: 30593, - isConstant: false, - isLValue: false, - isPure: true, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1787:9:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - functionReturnParameters: 30583, - id: 30594, - nodeType: "Return", - src: "1780:16:220", - }, - ], - }, - baseFunctions: [32126], - documentation: { - id: 30576, - nodeType: "StructuredDocumentation", - src: "1522:106:220", - text: " @dev Burns `_amount` of token from `msg.sender` balance.\n @inheritdoc TokenRouter", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_transferFromSender", - nameLocation: "1642:19:220", - overrides: { - id: 30580, - nodeType: "OverrideSpecifier", - overrides: [], - src: "1702:8:220", - }, - parameters: { - id: 30579, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30578, - mutability: "mutable", - name: "_amount", - nameLocation: "1679:7:220", - nodeType: "VariableDeclaration", - scope: 30596, - src: "1671:15:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30577, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "1671:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - ], - src: "1661:31:220", - }, - returnParameters: { - id: 30583, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30582, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 30596, - src: "1720:12:220", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 30581, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "1720:5:220", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "1719:14:220", - }, - scope: 30614, - stateMutability: "nonpayable", - virtual: false, - visibility: "internal", - }, - { - id: 30613, - nodeType: "FunctionDefinition", - src: "1933:188:220", - nodes: [], - body: { - id: 30612, - nodeType: "Block", - src: "2078:43:220", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 30608, - name: "_recipient", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30599, - src: "2094:10:220", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 30609, - name: "_amount", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30601, - src: "2106:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - ], - id: 30607, - name: "_mint", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 777, - src: "2088:5:220", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - typeString: "function (address,uint256)", - }, - }, - id: 30610, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "2088:26:220", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30611, - nodeType: "ExpressionStatement", - src: "2088:26:220", - }, - ], - }, - baseFunctions: [32188], - documentation: { - id: 30597, - nodeType: "StructuredDocumentation", - src: "1824:104:220", - text: " @dev Mints `_amount` of token to `_recipient` balance.\n @inheritdoc TokenRouter", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_transferTo", - nameLocation: "1942:11:220", - overrides: { - id: 30605, - nodeType: "OverrideSpecifier", - overrides: [], - src: "2069:8:220", - }, - parameters: { - id: 30604, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30599, - mutability: "mutable", - name: "_recipient", - nameLocation: "1971:10:220", - nodeType: "VariableDeclaration", - scope: 30613, - src: "1963:18:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30598, - name: "address", - nodeType: "ElementaryTypeName", - src: "1963:7:220", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30601, - mutability: "mutable", - name: "_amount", - nameLocation: "1999:7:220", - nodeType: "VariableDeclaration", - scope: 30613, - src: "1991:15:220", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30600, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "1991:7:220", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30603, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 30613, - src: "2016:14:220", - stateVariable: false, - storageLocation: "calldata", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes", - }, - typeName: { - id: 30602, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "2016:5:220", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "1953:98:220", - }, - returnParameters: { - id: 30606, - nodeType: "ParameterList", - parameters: [], - src: "2078:0:220", - }, - scope: 30614, - stateMutability: "nonpayable", - virtual: true, - visibility: "internal", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 30506, - name: "ERC20Upgradeable", - nameLocations: ["461:16:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 965, - src: "461:16:220", - }, - id: 30507, - nodeType: "InheritanceSpecifier", - src: "461:16:220", - }, - { - baseName: { - id: 30508, - name: "TokenRouter", - nameLocations: ["479:11:220"], - nodeType: "IdentifierPath", - referencedDeclaration: 32189, - src: "479:11:220", - }, - id: 30509, - nodeType: "InheritanceSpecifier", - src: "479:11:220", - }, - ], - canonicalName: "HypERC20", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 30505, - nodeType: "StructuredDocumentation", - src: "222:217:220", - text: " @title Hyperlane ERC20 Token Router that extends ERC20 with remote transfer functionality.\n @author Abacus Works\n @dev Supply on each chain is not constant but the aggregate supply across all chains is.", - }, - fullyImplemented: true, - linearizedBaseContracts: [ - 30614, 32189, 17612, 18266, 20951, 17881, 184, 965, 80331, 80306, - 79898, 353, - ], - name: "HypERC20", - nameLocation: "449:8:220", - scope: 30615, - usedErrors: [], - }, - ], - license: "Apache-2.0", - }, - id: 220, -} as const; diff --git a/example/abi/ITransparentUpgradeableProxy.ts b/example/abi/ITransparentUpgradeableProxy.ts deleted file mode 100644 index ff58b4a3..00000000 --- a/example/abi/ITransparentUpgradeableProxy.ts +++ /dev/null @@ -1,4297 +0,0 @@ -export const ITransparentUpgradeableProxy = { - abi: [ - { - type: "function", - name: "admin", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "changeAdmin", - inputs: [{ name: "", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "implementation", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "upgradeTo", - inputs: [{ name: "", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeToAndCall", - inputs: [ - { name: "", type: "address", internalType: "address" }, - { name: "", type: "bytes", internalType: "bytes" }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "event", - name: "AdminChanged", - inputs: [ - { - name: "previousAdmin", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "newAdmin", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "BeaconUpgraded", - inputs: [ - { - name: "beacon", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ - { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - ], - bytecode: { object: "0x", sourceMap: "", linkReferences: {} }, - deployedBytecode: { object: "0x", sourceMap: "", linkReferences: {} }, - methodIdentifiers: { - "admin()": "f851a440", - "changeAdmin(address)": "8f283970", - "implementation()": "5c60da1b", - "upgradeTo(address)": "3659cfe6", - "upgradeToAndCall(address,bytes)": "4f1ef286", - }, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} does not implement this interface directly, and some of its functions are implemented by an internal dispatch mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not include them in the ABI so this interface must be used to interact with it.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is changed."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":"ITransparentUpgradeableProxy"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","license":"MIT","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","license":"MIT","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","license":"MIT","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","license":"MIT","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","license":"MIT","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","license":"MIT","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689","license":"MIT","urls":["bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017","dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","license":"MIT","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { - internalType: "address", - name: "previousAdmin", - type: "address", - indexed: false, - }, - { - internalType: "address", - name: "newAdmin", - type: "address", - indexed: false, - }, - ], - type: "event", - name: "AdminChanged", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "beacon", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "BeaconUpgraded", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "Upgraded", - anonymous: false, - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "admin", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [{ internalType: "address", name: "", type: "address" }], - stateMutability: "nonpayable", - type: "function", - name: "changeAdmin", - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "implementation", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [{ internalType: "address", name: "", type: "address" }], - stateMutability: "nonpayable", - type: "function", - name: "upgradeTo", - }, - { - inputs: [ - { internalType: "address", name: "", type: "address" }, - { internalType: "bytes", name: "", type: "bytes" }, - ], - stateMutability: "payable", - type: "function", - name: "upgradeToAndCall", - }, - ], - devdoc: { kind: "dev", methods: {}, version: 1 }, - userdoc: { kind: "user", methods: {}, version: 1 }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": - "ITransparentUpgradeableProxy", - }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": - { - keccak256: - "0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90", - urls: [ - "bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263", - "dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": - { - keccak256: - "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff", - urls: [ - "bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688", - "dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": - { - keccak256: - "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d", - urls: [ - "bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5", - "dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol": - { - keccak256: - "0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2", - urls: [ - "bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2", - "dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/Proxy.sol": - { - keccak256: - "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27", - urls: [ - "bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472", - "dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": - { - keccak256: - "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", - urls: [ - "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", - "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": - { - keccak256: - "0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689", - urls: [ - "bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017", - "dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol": - { - keccak256: - "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - urls: [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": - { - keccak256: - "0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899", - urls: [ - "bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da", - "dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q", - ], - license: "MIT", - }, - }, - version: 1, - }, - ast: { - absolutePath: - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - id: 13138, - exportedSymbols: { - Address: [14766], - ERC1967Proxy: [12448], - ERC1967Upgrade: [12752], - IBeacon: [12814], - IERC1822Proxiable: [12411], - IERC1967: [12401], - ITransparentUpgradeableProxy: [12848], - Proxy: [12804], - StorageSlot: [14898], - TransparentUpgradeableProxy: [13137], - }, - nodeType: "SourceUnit", - src: "133:8208:95", - nodes: [ - { - id: 12816, - nodeType: "PragmaDirective", - src: "133:23:95", - nodes: [], - literals: ["solidity", "^", "0.8", ".0"], - }, - { - id: 12817, - nodeType: "ImportDirective", - src: "158:37:95", - nodes: [], - absolutePath: - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - file: "../ERC1967/ERC1967Proxy.sol", - nameLocation: "-1:-1:-1", - scope: 13138, - sourceUnit: 12449, - symbolAliases: [], - unitAlias: "", - }, - { - id: 12848, - nodeType: "ContractDefinition", - src: "637:332:95", - nodes: [ - { - id: 12825, - nodeType: "FunctionDefinition", - src: "694:49:95", - nodes: [], - functionSelector: "f851a440", - implemented: false, - kind: "function", - modifiers: [], - name: "admin", - nameLocation: "703:5:95", - parameters: { - id: 12821, - nodeType: "ParameterList", - parameters: [], - src: "708:2:95", - }, - returnParameters: { - id: 12824, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12823, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12825, - src: "734:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12822, - name: "address", - nodeType: "ElementaryTypeName", - src: "734:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "733:9:95", - }, - scope: 12848, - stateMutability: "view", - virtual: false, - visibility: "external", - }, - { - id: 12830, - nodeType: "FunctionDefinition", - src: "749:58:95", - nodes: [], - functionSelector: "5c60da1b", - implemented: false, - kind: "function", - modifiers: [], - name: "implementation", - nameLocation: "758:14:95", - parameters: { - id: 12826, - nodeType: "ParameterList", - parameters: [], - src: "772:2:95", - }, - returnParameters: { - id: 12829, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12828, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12830, - src: "798:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12827, - name: "address", - nodeType: "ElementaryTypeName", - src: "798:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "797:9:95", - }, - scope: 12848, - stateMutability: "view", - virtual: false, - visibility: "external", - }, - { - id: 12835, - nodeType: "FunctionDefinition", - src: "813:39:95", - nodes: [], - functionSelector: "8f283970", - implemented: false, - kind: "function", - modifiers: [], - name: "changeAdmin", - nameLocation: "822:11:95", - parameters: { - id: 12833, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12832, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12835, - src: "834:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12831, - name: "address", - nodeType: "ElementaryTypeName", - src: "834:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "833:9:95", - }, - returnParameters: { - id: 12834, - nodeType: "ParameterList", - parameters: [], - src: "851:0:95", - }, - scope: 12848, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 12840, - nodeType: "FunctionDefinition", - src: "858:37:95", - nodes: [], - functionSelector: "3659cfe6", - implemented: false, - kind: "function", - modifiers: [], - name: "upgradeTo", - nameLocation: "867:9:95", - parameters: { - id: 12838, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12837, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12840, - src: "877:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12836, - name: "address", - nodeType: "ElementaryTypeName", - src: "877:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "876:9:95", - }, - returnParameters: { - id: 12839, - nodeType: "ParameterList", - parameters: [], - src: "894:0:95", - }, - scope: 12848, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 12847, - nodeType: "FunctionDefinition", - src: "901:66:95", - nodes: [], - functionSelector: "4f1ef286", - implemented: false, - kind: "function", - modifiers: [], - name: "upgradeToAndCall", - nameLocation: "910:16:95", - parameters: { - id: 12845, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12842, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12847, - src: "927:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12841, - name: "address", - nodeType: "ElementaryTypeName", - src: "927:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12844, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12847, - src: "936:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12843, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "936:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "926:23:95", - }, - returnParameters: { - id: 12846, - nodeType: "ParameterList", - parameters: [], - src: "966:0:95", - }, - scope: 12848, - stateMutability: "payable", - virtual: false, - visibility: "external", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 12819, - name: "IERC1967", - nameLocations: ["679:8:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12401, - src: "679:8:95", - }, - id: 12820, - nodeType: "InheritanceSpecifier", - src: "679:8:95", - }, - ], - canonicalName: "ITransparentUpgradeableProxy", - contractDependencies: [], - contractKind: "interface", - documentation: { - id: 12818, - nodeType: "StructuredDocumentation", - src: "197:439:95", - text: " @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and some of its functions are implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it.", - }, - fullyImplemented: false, - linearizedBaseContracts: [12848, 12401], - name: "ITransparentUpgradeableProxy", - nameLocation: "647:28:95", - scope: 13138, - usedErrors: [], - }, - { - id: 13137, - nodeType: "ContractDefinition", - src: "3389:4951:95", - nodes: [ - { - id: 12870, - nodeType: "FunctionDefinition", - src: "3663:137:95", - nodes: [], - body: { - id: 12869, - nodeType: "Block", - src: "3763:37:95", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 12866, - name: "admin_", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12856, - src: "3786:6:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - id: 12865, - name: "_changeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12660, - src: "3773:12:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$returns$__$", - typeString: "function (address)", - }, - }, - id: 12867, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "3773:20:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12868, - nodeType: "ExpressionStatement", - src: "3773:20:95", - }, - ], - }, - documentation: { - id: 12852, - nodeType: "StructuredDocumentation", - src: "3448:210:95", - text: " @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.", - }, - implemented: true, - kind: "constructor", - modifiers: [ - { - arguments: [ - { - id: 12861, - name: "_logic", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12854, - src: "3748:6:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 12862, - name: "_data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12858, - src: "3756:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - ], - id: 12863, - kind: "baseConstructorSpecifier", - modifierName: { - id: 12860, - name: "ERC1967Proxy", - nameLocations: ["3735:12:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12448, - src: "3735:12:95", - }, - nodeType: "ModifierInvocation", - src: "3735:27:95", - }, - ], - name: "", - nameLocation: "-1:-1:-1", - parameters: { - id: 12859, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12854, - mutability: "mutable", - name: "_logic", - nameLocation: "3683:6:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3675:14:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12853, - name: "address", - nodeType: "ElementaryTypeName", - src: "3675:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12856, - mutability: "mutable", - name: "admin_", - nameLocation: "3699:6:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3691:14:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12855, - name: "address", - nodeType: "ElementaryTypeName", - src: "3691:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12858, - mutability: "mutable", - name: "_data", - nameLocation: "3720:5:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3707:18:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12857, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "3707:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "3674:52:95", - }, - returnParameters: { - id: 12864, - nodeType: "ParameterList", - parameters: [], - src: "3763:0:95", - }, - scope: 13137, - stateMutability: "payable", - virtual: false, - visibility: "public", - }, - { - id: 12886, - nodeType: "ModifierDefinition", - src: "4132:134:95", - nodes: [], - body: { - id: 12885, - nodeType: "Block", - src: "4151:115:95", - nodes: [], - statements: [ - { - condition: { - commonType: { - typeIdentifier: "t_address", - typeString: "address", - }, - id: 12877, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 12873, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4165:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12874, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4169:6:95", - memberName: "sender", - nodeType: "MemberAccess", - src: "4165:10:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12875, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "4179:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12876, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4179:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - src: "4165:25:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12883, - nodeType: "Block", - src: "4224:36:95", - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12880, - name: "_fallback", - nodeType: "Identifier", - overloadedDeclarations: [12979], - referencedDeclaration: 12979, - src: "4238:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12881, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4238:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12882, - nodeType: "ExpressionStatement", - src: "4238:11:95", - }, - ], - }, - id: 12884, - nodeType: "IfStatement", - src: "4161:99:95", - trueBody: { - id: 12879, - nodeType: "Block", - src: "4192:26:95", - statements: [ - { - id: 12878, - nodeType: "PlaceholderStatement", - src: "4206:1:95", - }, - ], - }, - }, - ], - }, - documentation: { - id: 12871, - nodeType: "StructuredDocumentation", - src: "3806:321:95", - text: " @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n CAUTION: This modifier is deprecated, as it could cause issues if the modified function has arguments, and the\n implementation provides a function with the same selector.", - }, - name: "ifAdmin", - nameLocation: "4141:7:95", - parameters: { - id: 12872, - nodeType: "ParameterList", - parameters: [], - src: "4148:2:95", - }, - virtual: false, - visibility: "internal", - }, - { - id: 12979, - nodeType: "FunctionDefinition", - src: "4407:1102:95", - nodes: [], - body: { - id: 12978, - nodeType: "Block", - src: "4454:1055:95", - nodes: [], - statements: [ - { - condition: { - commonType: { - typeIdentifier: "t_address", - typeString: "address", - }, - id: 12895, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 12891, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4468:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12892, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4472:6:95", - memberName: "sender", - nodeType: "MemberAccess", - src: "4468:10:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12893, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "4482:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12894, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4482:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - src: "4468:25:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12976, - nodeType: "Block", - src: "5461:42:95", - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - expression: { - id: 12971, - name: "super", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -25, - src: "5475:5:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_super$_TransparentUpgradeableProxy_$13137_$", - typeString: - "type(contract super TransparentUpgradeableProxy)", - }, - }, - id: 12973, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "5481:9:95", - memberName: "_fallback", - nodeType: "MemberAccess", - referencedDeclaration: 12782, - src: "5475:15:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12974, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5475:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12975, - nodeType: "ExpressionStatement", - src: "5475:17:95", - }, - ], - }, - id: 12977, - nodeType: "IfStatement", - src: "4464:1039:95", - trueBody: { - id: 12970, - nodeType: "Block", - src: "4495:960:95", - statements: [ - { - assignments: [12897], - declarations: [ - { - constant: false, - id: 12897, - mutability: "mutable", - name: "ret", - nameLocation: "4522:3:95", - nodeType: "VariableDeclaration", - scope: 12970, - src: "4509:16:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12896, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "4509:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 12898, - nodeType: "VariableDeclarationStatement", - src: "4509:16:95", - }, - { - assignments: [12900], - declarations: [ - { - constant: false, - id: 12900, - mutability: "mutable", - name: "selector", - nameLocation: "4546:8:95", - nodeType: "VariableDeclaration", - scope: 12970, - src: "4539:15:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - typeName: { - id: 12899, - name: "bytes4", - nodeType: "ElementaryTypeName", - src: "4539:6:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - visibility: "internal", - }, - ], - id: 12903, - initialValue: { - expression: { - id: 12901, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4557:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12902, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4561:3:95", - memberName: "sig", - nodeType: "MemberAccess", - src: "4557:7:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "4539:25:95", - }, - { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12908, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12904, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4582:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12905, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4594:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12906, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4623:9:95", - memberName: "upgradeTo", - nodeType: "MemberAccess", - referencedDeclaration: 12840, - src: "4594:38:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_nonpayable$_t_address_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.upgradeTo(address)", - }, - }, - id: 12907, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4633:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4594:47:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4582:59:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12919, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12915, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4712:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12916, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4724:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12917, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4753:16:95", - memberName: "upgradeToAndCall", - nodeType: "MemberAccess", - referencedDeclaration: 12847, - src: "4724:45:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes memory) payable", - }, - }, - id: 12918, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4770:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4724:54:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4712:66:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12930, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12926, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4856:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12927, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4868:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12928, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4897:11:95", - memberName: "changeAdmin", - nodeType: "MemberAccess", - referencedDeclaration: 12835, - src: "4868:40:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_nonpayable$_t_address_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.changeAdmin(address)", - }, - }, - id: 12929, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4909:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4868:49:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4856:61:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12941, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12937, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4990:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12938, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "5002:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12939, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5031:5:95", - memberName: "admin", - nodeType: "MemberAccess", - referencedDeclaration: 12825, - src: "5002:34:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_view$__$returns$_t_address_$", - typeString: - "function ITransparentUpgradeableProxy.admin() view returns (address)", - }, - }, - id: 12940, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5037:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "5002:43:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4990:55:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12952, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12948, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "5112:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12949, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "5124:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12950, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5153:14:95", - memberName: "implementation", - nodeType: "MemberAccess", - referencedDeclaration: 12830, - src: "5124:43:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_view$__$returns$_t_address_$", - typeString: - "function ITransparentUpgradeableProxy.implementation() view returns (address)", - }, - }, - id: 12951, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5168:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "5124:52:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "5112:64:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12963, - nodeType: "Block", - src: "5248:109:95", - statements: [ - { - expression: { - arguments: [ - { - hexValue: - "5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574", - id: 12960, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "5273:68:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d", - typeString: - 'literal_string "TransparentUpgradeableProxy: admin cannot fallback to proxy target"', - }, - value: - "TransparentUpgradeableProxy: admin cannot fallback to proxy target", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d", - typeString: - 'literal_string "TransparentUpgradeableProxy: admin cannot fallback to proxy target"', - }, - ], - id: 12959, - name: "revert", - nodeType: "Identifier", - overloadedDeclarations: [-19, -19], - referencedDeclaration: -19, - src: "5266:6:95", - typeDescriptions: { - typeIdentifier: - "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - typeString: - "function (string memory) pure", - }, - }, - id: 12961, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5266:76:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12962, - nodeType: "ExpressionStatement", - src: "5266:76:95", - }, - ], - }, - id: 12964, - nodeType: "IfStatement", - src: "5108:249:95", - trueBody: { - id: 12958, - nodeType: "Block", - src: "5178:64:95", - statements: [ - { - expression: { - id: 12956, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12953, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "5196:3:95", - typeDescriptions: { - typeIdentifier: - "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12954, - name: "_dispatchImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13019, - src: "5202:23:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12955, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5202:25:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "5196:31:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12957, - nodeType: "ExpressionStatement", - src: "5196:31:95", - }, - ], - }, - }, - id: 12965, - nodeType: "IfStatement", - src: "4986:371:95", - trueBody: { - id: 12947, - nodeType: "Block", - src: "5047:55:95", - statements: [ - { - expression: { - id: 12945, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12942, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "5065:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12943, - name: "_dispatchAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12999, - src: "5071:14:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12944, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5071:16:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "5065:22:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12946, - nodeType: "ExpressionStatement", - src: "5065:22:95", - }, - ], - }, - }, - id: 12966, - nodeType: "IfStatement", - src: "4852:505:95", - trueBody: { - id: 12936, - nodeType: "Block", - src: "4919:61:95", - statements: [ - { - expression: { - id: 12934, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12931, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4937:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12932, - name: "_dispatchChangeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13048, - src: "4943:20:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12933, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4943:22:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4937:28:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12935, - nodeType: "ExpressionStatement", - src: "4937:28:95", - }, - ], - }, - }, - id: 12967, - nodeType: "IfStatement", - src: "4708:649:95", - trueBody: { - id: 12925, - nodeType: "Block", - src: "4780:66:95", - statements: [ - { - expression: { - id: 12923, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12920, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4798:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12921, - name: "_dispatchUpgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13114, - src: "4804:25:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12922, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4804:27:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4798:33:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12924, - nodeType: "ExpressionStatement", - src: "4798:33:95", - }, - ], - }, - }, - id: 12968, - nodeType: "IfStatement", - src: "4578:779:95", - trueBody: { - id: 12914, - nodeType: "Block", - src: "4643:59:95", - statements: [ - { - expression: { - id: 12912, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12909, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4661:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12910, - name: "_dispatchUpgradeTo", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13082, - src: "4667:18:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12911, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4667:20:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4661:26:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12913, - nodeType: "ExpressionStatement", - src: "4661:26:95", - }, - ], - }, - }, - { - AST: { - nodeType: "YulBlock", - src: "5379:66:95", - statements: [ - { - expression: { - arguments: [ - { - arguments: [ - { - name: "ret", - nodeType: "YulIdentifier", - src: "5408:3:95", - }, - { - kind: "number", - nodeType: "YulLiteral", - src: "5413:4:95", - type: "", - value: "0x20", - }, - ], - functionName: { - name: "add", - nodeType: "YulIdentifier", - src: "5404:3:95", - }, - nodeType: "YulFunctionCall", - src: "5404:14:95", - }, - { - arguments: [ - { - name: "ret", - nodeType: "YulIdentifier", - src: "5426:3:95", - }, - ], - functionName: { - name: "mload", - nodeType: "YulIdentifier", - src: "5420:5:95", - }, - nodeType: "YulFunctionCall", - src: "5420:10:95", - }, - ], - functionName: { - name: "return", - nodeType: "YulIdentifier", - src: "5397:6:95", - }, - nodeType: "YulFunctionCall", - src: "5397:34:95", - }, - nodeType: "YulExpressionStatement", - src: "5397:34:95", - }, - ], - }, - evmVersion: "paris", - externalReferences: [ - { - declaration: 12897, - isOffset: false, - isSlot: false, - src: "5408:3:95", - valueSize: 1, - }, - { - declaration: 12897, - isOffset: false, - isSlot: false, - src: "5426:3:95", - valueSize: 1, - }, - ], - id: 12969, - nodeType: "InlineAssembly", - src: "5370:75:95", - }, - ], - }, - }, - ], - }, - baseFunctions: [12782], - documentation: { - id: 12887, - nodeType: "StructuredDocumentation", - src: "4272:130:95", - text: " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_fallback", - nameLocation: "4416:9:95", - overrides: { - id: 12889, - nodeType: "OverrideSpecifier", - overrides: [], - src: "4445:8:95", - }, - parameters: { - id: 12888, - nodeType: "ParameterList", - parameters: [], - src: "4425:2:95", - }, - returnParameters: { - id: 12890, - nodeType: "ParameterList", - parameters: [], - src: "4454:0:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: true, - visibility: "internal", - }, - { - id: 12999, - nodeType: "FunctionDefinition", - src: "5860:165:95", - nodes: [], - body: { - id: 12998, - nodeType: "Block", - src: "5917:108:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12985, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "5927:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12986, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5927:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12987, - nodeType: "ExpressionStatement", - src: "5927:19:95", - }, - { - assignments: [12989], - declarations: [ - { - constant: false, - id: 12989, - mutability: "mutable", - name: "admin", - nameLocation: "5965:5:95", - nodeType: "VariableDeclaration", - scope: 12998, - src: "5957:13:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12988, - name: "address", - nodeType: "ElementaryTypeName", - src: "5957:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 12992, - initialValue: { - arguments: [], - expression: { - argumentTypes: [], - id: 12990, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "5973:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12991, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5973:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "5957:27:95", - }, - { - expression: { - arguments: [ - { - id: 12995, - name: "admin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12989, - src: "6012:5:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 12993, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6001:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 12994, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6005:6:95", - memberName: "encode", - nodeType: "MemberAccess", - src: "6001:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - typeString: "function () pure returns (bytes memory)", - }, - }, - id: 12996, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6001:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - functionReturnParameters: 12984, - id: 12997, - nodeType: "Return", - src: "5994:24:95", - }, - ], - }, - documentation: { - id: 12980, - nodeType: "StructuredDocumentation", - src: "5515:340:95", - text: " @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchAdmin", - nameLocation: "5869:14:95", - parameters: { - id: 12981, - nodeType: "ParameterList", - parameters: [], - src: "5883:2:95", - }, - returnParameters: { - id: 12984, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12983, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12999, - src: "5903:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12982, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "5903:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "5902:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13019, - nodeType: "FunctionDefinition", - src: "6385:198:95", - nodes: [], - body: { - id: 13018, - nodeType: "Block", - src: "6451:132:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13005, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "6461:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13006, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6461:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13007, - nodeType: "ExpressionStatement", - src: "6461:19:95", - }, - { - assignments: [13009], - declarations: [ - { - constant: false, - id: 13009, - mutability: "mutable", - name: "implementation", - nameLocation: "6499:14:95", - nodeType: "VariableDeclaration", - scope: 13018, - src: "6491:22:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13008, - name: "address", - nodeType: "ElementaryTypeName", - src: "6491:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13012, - initialValue: { - arguments: [], - expression: { - argumentTypes: [], - id: 13010, - name: "_implementation", - nodeType: "Identifier", - overloadedDeclarations: [12447], - referencedDeclaration: 12447, - src: "6516:15:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 13011, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6516:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "6491:42:95", - }, - { - expression: { - arguments: [ - { - id: 13015, - name: "implementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13009, - src: "6561:14:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 13013, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6550:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13014, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6554:6:95", - memberName: "encode", - nodeType: "MemberAccess", - src: "6550:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - typeString: "function () pure returns (bytes memory)", - }, - }, - id: 13016, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6550:26:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - functionReturnParameters: 13004, - id: 13017, - nodeType: "Return", - src: "6543:33:95", - }, - ], - }, - documentation: { - id: 13000, - nodeType: "StructuredDocumentation", - src: "6031:349:95", - text: " @dev Returns the current implementation.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchImplementation", - nameLocation: "6394:23:95", - parameters: { - id: 13001, - nodeType: "ParameterList", - parameters: [], - src: "6417:2:95", - }, - returnParameters: { - id: 13004, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13003, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13019, - src: "6437:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13002, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "6437:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "6436:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13048, - nodeType: "FunctionDefinition", - src: "6694:216:95", - nodes: [], - body: { - id: 13047, - nodeType: "Block", - src: "6757:153:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13025, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "6767:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13026, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6767:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13027, - nodeType: "ExpressionStatement", - src: "6767:19:95", - }, - { - assignments: [13029], - declarations: [ - { - constant: false, - id: 13029, - mutability: "mutable", - name: "newAdmin", - nameLocation: "6805:8:95", - nodeType: "VariableDeclaration", - scope: 13047, - src: "6797:16:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13028, - name: "address", - nodeType: "ElementaryTypeName", - src: "6797:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13040, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13032, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "6827:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13033, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "6831:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "6827:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13035, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "6827:12:95", - startExpression: { - hexValue: "34", - id: 13034, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "6836:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13037, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "6842:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13036, - name: "address", - nodeType: "ElementaryTypeName", - src: "6842:7:95", - typeDescriptions: {}, - }, - }, - ], - id: 13038, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "6841:9:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 13030, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6816:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13031, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6820:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "6816:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13039, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6816:35:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "6797:54:95", - }, - { - expression: { - arguments: [ - { - id: 13042, - name: "newAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13029, - src: "6874:8:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - id: 13041, - name: "_changeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12660, - src: "6861:12:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$returns$__$", - typeString: "function (address)", - }, - }, - id: 13043, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6861:22:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13044, - nodeType: "ExpressionStatement", - src: "6861:22:95", - }, - { - expression: { - hexValue: "", - id: 13045, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "6901:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13024, - id: 13046, - nodeType: "Return", - src: "6894:9:95", - }, - ], - }, - documentation: { - id: 13020, - nodeType: "StructuredDocumentation", - src: "6589:100:95", - text: " @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchChangeAdmin", - nameLocation: "6703:20:95", - parameters: { - id: 13021, - nodeType: "ParameterList", - parameters: [], - src: "6723:2:95", - }, - returnParameters: { - id: 13024, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13023, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13048, - src: "6743:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13022, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "6743:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "6742:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13082, - nodeType: "FunctionDefinition", - src: "6985:255:95", - nodes: [], - body: { - id: 13081, - nodeType: "Block", - src: "7046:194:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13054, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "7056:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13055, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7056:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13056, - nodeType: "ExpressionStatement", - src: "7056:19:95", - }, - { - assignments: [13058], - declarations: [ - { - constant: false, - id: 13058, - mutability: "mutable", - name: "newImplementation", - nameLocation: "7094:17:95", - nodeType: "VariableDeclaration", - scope: 13081, - src: "7086:25:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13057, - name: "address", - nodeType: "ElementaryTypeName", - src: "7086:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13069, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13061, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "7125:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13062, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "7129:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "7125:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13064, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "7125:12:95", - startExpression: { - hexValue: "34", - id: 13063, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "7134:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13066, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7140:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13065, - name: "address", - nodeType: "ElementaryTypeName", - src: "7140:7:95", - typeDescriptions: {}, - }, - }, - ], - id: 13067, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "7139:9:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 13059, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "7114:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13060, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "7118:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "7114:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13068, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7114:35:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "7086:63:95", - }, - { - expression: { - arguments: [ - { - id: 13071, - name: "newImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13058, - src: "7177:17:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - arguments: [ - { - hexValue: "", - id: 13074, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7202:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - ], - id: 13073, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7196:5:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_bytes_storage_ptr_$", - typeString: "type(bytes storage pointer)", - }, - typeName: { - id: 13072, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7196:5:95", - typeDescriptions: {}, - }, - }, - id: 13075, - isConstant: false, - isLValue: false, - isPure: true, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7196:9:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - hexValue: "66616c7365", - id: 13076, - isConstant: false, - isLValue: false, - isPure: true, - kind: "bool", - lValueRequested: false, - nodeType: "Literal", - src: "7207:5:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - value: "false", - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13070, - name: "_upgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12547, - src: "7159:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - typeString: "function (address,bytes memory,bool)", - }, - }, - id: 13077, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7159:54:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13078, - nodeType: "ExpressionStatement", - src: "7159:54:95", - }, - { - expression: { - hexValue: "", - id: 13079, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7231:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13053, - id: 13080, - nodeType: "Return", - src: "7224:9:95", - }, - ], - }, - documentation: { - id: 13049, - nodeType: "StructuredDocumentation", - src: "6916:64:95", - text: " @dev Upgrade the implementation of the proxy.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchUpgradeTo", - nameLocation: "6994:18:95", - parameters: { - id: 13050, - nodeType: "ParameterList", - parameters: [], - src: "7012:2:95", - }, - returnParameters: { - id: 13053, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13052, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13082, - src: "7032:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13051, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7032:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "7031:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13114, - nodeType: "FunctionDefinition", - src: "7524:254:95", - nodes: [], - body: { - id: 13113, - nodeType: "Block", - src: "7592:186:95", - nodes: [], - statements: [ - { - assignments: [13089, 13091], - declarations: [ - { - constant: false, - id: 13089, - mutability: "mutable", - name: "newImplementation", - nameLocation: "7611:17:95", - nodeType: "VariableDeclaration", - scope: 13113, - src: "7603:25:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13088, - name: "address", - nodeType: "ElementaryTypeName", - src: "7603:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 13091, - mutability: "mutable", - name: "data", - nameLocation: "7643:4:95", - nodeType: "VariableDeclaration", - scope: 13113, - src: "7630:17:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13090, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7630:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 13104, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13094, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "7662:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13095, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "7666:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "7662:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13097, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "7662:12:95", - startExpression: { - hexValue: "34", - id: 13096, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "7671:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13099, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7677:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13098, - name: "address", - nodeType: "ElementaryTypeName", - src: "7677:7:95", - typeDescriptions: {}, - }, - }, - { - id: 13101, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7686:5:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_bytes_storage_ptr_$", - typeString: "type(bytes storage pointer)", - }, - typeName: { - id: 13100, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7686:5:95", - typeDescriptions: {}, - }, - }, - ], - id: 13102, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "7676:16:95", - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - typeString: - "tuple(type(address),type(bytes storage pointer))", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: - "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - typeString: - "tuple(type(address),type(bytes storage pointer))", - }, - ], - expression: { - id: 13092, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "7651:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13093, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "7655:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "7651:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13103, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7651:42:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", - typeString: "tuple(address payable,bytes memory)", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "7602:91:95", - }, - { - expression: { - arguments: [ - { - id: 13106, - name: "newImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13089, - src: "7721:17:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 13107, - name: "data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13091, - src: "7740:4:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - hexValue: "74727565", - id: 13108, - isConstant: false, - isLValue: false, - isPure: true, - kind: "bool", - lValueRequested: false, - nodeType: "Literal", - src: "7746:4:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - value: "true", - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13105, - name: "_upgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12547, - src: "7703:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - typeString: "function (address,bytes memory,bool)", - }, - }, - id: 13109, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7703:48:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13110, - nodeType: "ExpressionStatement", - src: "7703:48:95", - }, - { - expression: { - hexValue: "", - id: 13111, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7769:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13087, - id: 13112, - nodeType: "Return", - src: "7762:9:95", - }, - ], - }, - documentation: { - id: 13083, - nodeType: "StructuredDocumentation", - src: "7246:273:95", - text: " @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchUpgradeToAndCall", - nameLocation: "7533:25:95", - parameters: { - id: 13084, - nodeType: "ParameterList", - parameters: [], - src: "7558:2:95", - }, - returnParameters: { - id: 13087, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13086, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13114, - src: "7578:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13085, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7578:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "7577:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13124, - nodeType: "FunctionDefinition", - src: "7931:93:95", - nodes: [], - body: { - id: 13123, - nodeType: "Block", - src: "7989:35:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13120, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "8006:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 13121, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "8006:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - functionReturnParameters: 13119, - id: 13122, - nodeType: "Return", - src: "7999:18:95", - }, - ], - }, - documentation: { - id: 13115, - nodeType: "StructuredDocumentation", - src: "7784:142:95", - text: " @dev Returns the current admin.\n CAUTION: This function is deprecated. Use {ERC1967Upgrade-_getAdmin} instead.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_admin", - nameLocation: "7940:6:95", - parameters: { - id: 13116, - nodeType: "ParameterList", - parameters: [], - src: "7946:2:95", - }, - returnParameters: { - id: 13119, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13118, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13124, - src: "7980:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13117, - name: "address", - nodeType: "ElementaryTypeName", - src: "7980:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "7979:9:95", - }, - scope: 13137, - stateMutability: "view", - virtual: true, - visibility: "internal", - }, - { - id: 13136, - nodeType: "FunctionDefinition", - src: "8261:77:95", - nodes: [], - body: { - id: 13135, - nodeType: "Block", - src: "8298:40:95", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - commonType: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - id: 13132, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 13129, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "8316:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13130, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "8320:5:95", - memberName: "value", - nodeType: "MemberAccess", - src: "8316:9:95", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - hexValue: "30", - id: 13131, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "8329:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_0_by_1", - typeString: "int_const 0", - }, - value: "0", - }, - src: "8316:14:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13128, - name: "require", - nodeType: "Identifier", - overloadedDeclarations: [-18, -18], - referencedDeclaration: -18, - src: "8308:7:95", - typeDescriptions: { - typeIdentifier: - "t_function_require_pure$_t_bool_$returns$__$", - typeString: "function (bool) pure", - }, - }, - id: 13133, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "8308:23:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13134, - nodeType: "ExpressionStatement", - src: "8308:23:95", - }, - ], - }, - documentation: { - id: 13125, - nodeType: "StructuredDocumentation", - src: "8030:226:95", - text: " @dev To keep this contract fully transparent, all `ifAdmin` functions must be payable. This helper is here to\n emulate some proxy functions being non-payable while still allowing value to pass through.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_requireZeroValue", - nameLocation: "8270:17:95", - parameters: { - id: 13126, - nodeType: "ParameterList", - parameters: [], - src: "8287:2:95", - }, - returnParameters: { - id: 13127, - nodeType: "ParameterList", - parameters: [], - src: "8298:0:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 12850, - name: "ERC1967Proxy", - nameLocations: ["3429:12:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12448, - src: "3429:12:95", - }, - id: 12851, - nodeType: "InheritanceSpecifier", - src: "3429:12:95", - }, - ], - canonicalName: "TransparentUpgradeableProxy", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 12849, - nodeType: "StructuredDocumentation", - src: "971:2417:95", - text: " @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler\n will not check that there are no selector conflicts, due to the note above. A selector clash between any new function\n and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could\n render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised.", - }, - fullyImplemented: true, - linearizedBaseContracts: [13137, 12448, 12752, 12401, 12804], - name: "TransparentUpgradeableProxy", - nameLocation: "3398:27:95", - scope: 13138, - usedErrors: [], - }, - ], - license: "MIT", - }, - id: 95, -} as const; diff --git a/example/abi/ProxyAdmin.ts b/example/abi/ProxyAdmin.ts deleted file mode 100644 index 7212e05e..00000000 --- a/example/abi/ProxyAdmin.ts +++ /dev/null @@ -1,2110 +0,0 @@ -export const ProxyAdmin = { - abi: [ - { - type: "function", - name: "changeProxyAdmin", - inputs: [ - { - name: "proxy", - type: "address", - internalType: "contract ITransparentUpgradeableProxy", - }, - { name: "newAdmin", type: "address", internalType: "address" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "getProxyAdmin", - inputs: [ - { - name: "proxy", - type: "address", - internalType: "contract ITransparentUpgradeableProxy", - }, - ], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "getProxyImplementation", - inputs: [ - { - name: "proxy", - type: "address", - internalType: "contract ITransparentUpgradeableProxy", - }, - ], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "owner", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "renounceOwnership", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "transferOwnership", - inputs: [{ name: "newOwner", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgrade", - inputs: [ - { - name: "proxy", - type: "address", - internalType: "contract ITransparentUpgradeableProxy", - }, - { name: "implementation", type: "address", internalType: "address" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "upgradeAndCall", - inputs: [ - { - name: "proxy", - type: "address", - internalType: "contract ITransparentUpgradeableProxy", - }, - { name: "implementation", type: "address", internalType: "address" }, - { name: "data", type: "bytes", internalType: "bytes" }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "event", - name: "OwnershipTransferred", - inputs: [ - { - name: "previousOwner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "newOwner", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - ], - bytecode: { - object: - "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6108658061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b366004610608565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb36600461062c565b610269565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610694565b6102f7565b34801561014a57600080fd5b506100de61015936600461062c565b61038c565b34801561016a57600080fd5b506100de610179366004610608565b6103e8565b34801561018a57600080fd5b506100a0610199366004610608565b6104a4565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610788565b949350505050565b61025d6104f0565b6102676000610571565b565b6102716104f0565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156102db57600080fd5b505af11580156102ef573d6000803e3d6000fd5b505050505050565b6102ff6104f0565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef28690349061035590869086906004016107a5565b6000604051808303818588803b15801561036e57600080fd5b505af1158015610382573d6000803e3d6000fd5b5050505050505050565b6103946104f0565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016102c1565b6103f06104f0565b73ffffffffffffffffffffffffffffffffffffffff8116610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104a181610571565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b60005473ffffffffffffffffffffffffffffffffffffffff163314610267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146104a157600080fd5b60006020828403121561061a57600080fd5b8135610625816105e6565b9392505050565b6000806040838503121561063f57600080fd5b823561064a816105e6565b9150602083013561065a816105e6565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156106a957600080fd5b83356106b4816105e6565b925060208401356106c4816105e6565b9150604084013567ffffffffffffffff808211156106e157600080fd5b818601915086601f8301126106f557600080fd5b81358181111561070757610707610665565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561074d5761074d610665565b8160405282815289602084870101111561076657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561079a57600080fd5b8151610625816105e6565b73ffffffffffffffffffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b818110156107ef578581018301518582016060015282016107d3565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220d102f47386213fff51d4693f0c3b6ba1746ba7ef46cf6ccf410f039609c1be3564736f6c63430008130033", - sourceMap: - "450:2409:37:-:0;;;;;;;;;;;;-1:-1:-1;936:32:25;719:10:53;936:18:25;:32::i;:::-;450:2409:37;;2426:187:25;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:25;;;-1:-1:-1;;;;;;2534:17:25;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;450:2409:37:-;;;;;;;", - linkReferences: {}, - }, - deployedBytecode: { - object: - "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b366004610608565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb36600461062c565b610269565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610694565b6102f7565b34801561014a57600080fd5b506100de61015936600461062c565b61038c565b34801561016a57600080fd5b506100de610179366004610608565b6103e8565b34801561018a57600080fd5b506100a0610199366004610608565b6104a4565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610788565b949350505050565b61025d6104f0565b6102676000610571565b565b6102716104f0565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156102db57600080fd5b505af11580156102ef573d6000803e3d6000fd5b505050505050565b6102ff6104f0565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef28690349061035590869086906004016107a5565b6000604051808303818588803b15801561036e57600080fd5b505af1158015610382573d6000803e3d6000fd5b5050505050505050565b6103946104f0565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016102c1565b6103f06104f0565b73ffffffffffffffffffffffffffffffffffffffff8116610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104a181610571565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b60005473ffffffffffffffffffffffffffffffffffffffff163314610267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146104a157600080fd5b60006020828403121561061a57600080fd5b8135610625816105e6565b9392505050565b6000806040838503121561063f57600080fd5b823561064a816105e6565b9150602083013561065a816105e6565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156106a957600080fd5b83356106b4816105e6565b925060208401356106c4816105e6565b9150604084013567ffffffffffffffff808211156106e157600080fd5b818601915086601f8301126106f557600080fd5b81358181111561070757610707610665565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561074d5761074d610665565b8160405282815289602084870101111561076657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561079a57600080fd5b8151610625816105e6565b73ffffffffffffffffffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b818110156107ef578581018301518582016060015282016107d3565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220d102f47386213fff51d4693f0c3b6ba1746ba7ef46cf6ccf410f039609c1be3564736f6c63430008130033", - sourceMap: - "450:2409:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;650:438;;;;;;;;;;-1:-1:-1;650:438:37;;;;;:::i;:::-;;:::i;:::-;;;698:42:282;686:55;;;668:74;;656:2;641:18;650:438:37;;;;;;;1824:101:25;;;;;;;;;;;;;:::i;:::-;;1842:149:37;;;;;;;;;;-1:-1:-1;1842:149:37;;;;;:::i;:::-;;:::i;1201:85:25:-;;;;;;;;;;-1:-1:-1;1247:7:25;1273:6;;;1201:85;;2612:245:37;;;;;;:::i;:::-;;:::i;2196:150::-;;;;;;;;;;-1:-1:-1;2196:150:37;;;;;:::i;:::-;;:::i;2074:198:25:-;;;;;;;;;;-1:-1:-1;2074:198:25;;;;;:::i;:::-;;:::i;1248:420:37:-;;;;;;;;;;-1:-1:-1;1248:420:37;;;;;:::i;:::-;;:::i;650:438::-;747:7;924:12;938:23;973:5;965:25;;:40;;;;3285:66:282;3273:79;;3377:1;3368:11;;3072:313;965:40:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:82;;;;1023:7;1015:16;;;;;;1059:10;1048:33;;;;;;;;;;;;:::i;:::-;1041:40;650:438;-1:-1:-1;;;;650:438:37:o;1824:101:25:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1842:149:37:-;1094:13:25;:11;:13::i;:::-;1957:27:37::1;::::0;;;;:17:::1;686:55:282::0;;;1957:27:37::1;::::0;::::1;668:74:282::0;1957:17:37;::::1;::::0;::::1;::::0;641:18:282;;1957:27:37::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1842:149:::0;;:::o;2612:245::-;1094:13:25;:11;:13::i;:::-;2788:62:37::1;::::0;;;;:22:::1;::::0;::::1;::::0;::::1;::::0;2818:9:::1;::::0;2788:62:::1;::::0;2829:14;;2845:4;;2788:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2612:245:::0;;;:::o;2196:150::-;1094:13:25;:11;:13::i;:::-;2308:31:37::1;::::0;;;;:15:::1;686:55:282::0;;;2308:31:37::1;::::0;::::1;668:74:282::0;2308:15:37;::::1;::::0;::::1;::::0;641:18:282;;2308:31:37::1;522:226:282::0;2074:198:25;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;::::1;::::0;;4616:2:282;2154:73:25::1;::::0;::::1;4598:21:282::0;4655:2;4635:18;;;4628:30;4694:34;4674:18;;;4667:62;4765:8;4745:18;;;4738:36;4791:19;;2154:73:25::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1248:420:37:-;1336:7;1504:12;1518:23;1553:5;1545:25;;:40;;;;5034:66:282;5022:79;;5126:1;5117:11;;4821:313;1359:130:25;1247:7;1273:6;1422:23;1273:6;719:10:53;1422:23:25;1414:68;;;;;;;5341:2:282;1414:68:25;;;5323:21:282;;;5360:18;;;5353:30;5419:34;5399:18;;;5392:62;5471:18;;1414:68:25;5139:356:282;2426:187:25;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:184:282:-;130:42;123:5;119:54;112:5;109:65;99:93;;188:1;185;178:12;203:314;299:6;352:2;340:9;331:7;327:23;323:32;320:52;;;368:1;365;358:12;320:52;407:9;394:23;426:61;481:5;426:61;:::i;:::-;506:5;203:314;-1:-1:-1;;;203:314:282:o;753:485::-;858:6;866;919:2;907:9;898:7;894:23;890:32;887:52;;;935:1;932;925:12;887:52;974:9;961:23;993:61;1048:5;993:61;:::i;:::-;1073:5;-1:-1:-1;1130:2:282;1115:18;;1102:32;1143:63;1102:32;1143:63;:::i;:::-;1225:7;1215:17;;;753:485;;;;;:::o;1243:184::-;1295:77;1292:1;1285:88;1392:4;1389:1;1382:15;1416:4;1413:1;1406:15;1432:1353;1555:6;1563;1571;1624:2;1612:9;1603:7;1599:23;1595:32;1592:52;;;1640:1;1637;1630:12;1592:52;1679:9;1666:23;1698:61;1753:5;1698:61;:::i;:::-;1778:5;-1:-1:-1;1835:2:282;1820:18;;1807:32;1848:63;1807:32;1848:63;:::i;:::-;1930:7;-1:-1:-1;1988:2:282;1973:18;;1960:32;2011:18;2041:14;;;2038:34;;;2068:1;2065;2058:12;2038:34;2106:6;2095:9;2091:22;2081:32;;2151:7;2144:4;2140:2;2136:13;2132:27;2122:55;;2173:1;2170;2163:12;2122:55;2209:2;2196:16;2231:2;2227;2224:10;2221:36;;;2237:18;;:::i;:::-;2371:2;2365:9;2433:4;2425:13;;2276:66;2421:22;;;2445:2;2417:31;2413:40;2401:53;;;2469:18;;;2489:22;;;2466:46;2463:72;;;2515:18;;:::i;:::-;2555:10;2551:2;2544:22;2590:2;2582:6;2575:18;2630:7;2625:2;2620;2616;2612:11;2608:20;2605:33;2602:53;;;2651:1;2648;2641:12;2602:53;2707:2;2702;2698;2694:11;2689:2;2681:6;2677:15;2664:46;2752:1;2747:2;2742;2734:6;2730:15;2726:24;2719:35;2773:6;2763:16;;;;;;;1432:1353;;;;;:::o;3390:289::-;3468:6;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;3569:9;3563:16;3588:61;3643:5;3588:61;:::i;3684:725::-;3871:42;3863:6;3859:55;3848:9;3841:74;3822:4;3934:2;3972;3967;3956:9;3952:18;3945:30;4004:6;3998:13;4047:6;4042:2;4031:9;4027:18;4020:34;4072:1;4082:140;4096:6;4093:1;4090:13;4082:140;;;4191:14;;;4187:23;;4181:30;4157:17;;;4176:2;4153:26;4146:66;4111:10;;4082:140;;;4086:3;4271:1;4266:2;4257:6;4246:9;4242:22;4238:31;4231:42;4400:2;4330:66;4325:2;4317:6;4313:15;4309:88;4298:9;4294:104;4290:113;4282:121;;;;3684:725;;;;;:::o", - linkReferences: {}, - }, - methodIdentifiers: { - "changeProxyAdmin(address,address)": "7eff275e", - "getProxyAdmin(address)": "f3b7dead", - "getProxyImplementation(address)": "204e1c7a", - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "transferOwnership(address)": "f2fde38b", - "upgrade(address,address)": "99a88ec4", - "upgradeAndCall(address,address,bytes)": "9623609d", - }, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.","kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"../node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol":"ProxyAdmin"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"../node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","license":"MIT","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"]},"../node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","license":"MIT","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"]},"../node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","license":"MIT","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"]},"../node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","license":"MIT","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"]},"../node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","license":"MIT","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"]},"../node_modules/@openzeppelin/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","license":"MIT","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"]},"../node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","license":"MIT","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"]},"../node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol":{"keccak256":"0x8e99882a991853dc446278576c8cb9b3a5ded84642e9bcc917b1677807c2f18c","license":"MIT","urls":["bzz-raw://310153c1a4c739002ffbc1351ed1dd7488a0d20f5dd816353332fc2c1d81e0a3","dweb:/ipfs/QmcvwXQVUBRTEAoNcvwSVFmhpHUXQ21s2Hfj79hq2uQNVM"]},"../node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689","license":"MIT","urls":["bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017","dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq"]},"../node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"../node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","license":"MIT","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"]},"../node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","license":"MIT","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { - internalType: "address", - name: "previousOwner", - type: "address", - indexed: true, - }, - { - internalType: "address", - name: "newOwner", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "OwnershipTransferred", - anonymous: false, - }, - { - inputs: [ - { - internalType: "contract ITransparentUpgradeableProxy", - name: "proxy", - type: "address", - }, - { internalType: "address", name: "newAdmin", type: "address" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "changeProxyAdmin", - }, - { - inputs: [ - { - internalType: "contract ITransparentUpgradeableProxy", - name: "proxy", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - name: "getProxyAdmin", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [ - { - internalType: "contract ITransparentUpgradeableProxy", - name: "proxy", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - name: "getProxyImplementation", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "owner", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [], - stateMutability: "nonpayable", - type: "function", - name: "renounceOwnership", - }, - { - inputs: [ - { internalType: "address", name: "newOwner", type: "address" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "transferOwnership", - }, - { - inputs: [ - { - internalType: "contract ITransparentUpgradeableProxy", - name: "proxy", - type: "address", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - name: "upgrade", - }, - { - inputs: [ - { - internalType: "contract ITransparentUpgradeableProxy", - name: "proxy", - type: "address", - }, - { - internalType: "address", - name: "implementation", - type: "address", - }, - { internalType: "bytes", name: "data", type: "bytes" }, - ], - stateMutability: "payable", - type: "function", - name: "upgradeAndCall", - }, - ], - devdoc: { - kind: "dev", - methods: { - "changeProxyAdmin(address,address)": { - details: - "Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.", - }, - "getProxyAdmin(address)": { - details: - "Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.", - }, - "getProxyImplementation(address)": { - details: - "Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.", - }, - "owner()": { details: "Returns the address of the current owner." }, - "renounceOwnership()": { - details: - "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.", - }, - "transferOwnership(address)": { - details: - "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.", - }, - "upgrade(address,address)": { - details: - "Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.", - }, - "upgradeAndCall(address,address,bytes)": { - details: - "Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.", - }, - }, - version: 1, - }, - userdoc: { kind: "user", methods: {}, version: 1 }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { - "../node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": - "ProxyAdmin", - }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "../node_modules/@openzeppelin/contracts/access/Ownable.sol": { - keccak256: - "0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218", - urls: [ - "bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32", - "dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": { - keccak256: - "0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90", - urls: [ - "bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263", - "dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - keccak256: - "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff", - urls: [ - "bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688", - "dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": - { - keccak256: - "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d", - urls: [ - "bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5", - "dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol": - { - keccak256: - "0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2", - urls: [ - "bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2", - "dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/Proxy.sol": { - keccak256: - "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27", - urls: [ - "bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472", - "dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - keccak256: - "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", - urls: [ - "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", - "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": - { - keccak256: - "0x8e99882a991853dc446278576c8cb9b3a5ded84642e9bcc917b1677807c2f18c", - urls: [ - "bzz-raw://310153c1a4c739002ffbc1351ed1dd7488a0d20f5dd816353332fc2c1d81e0a3", - "dweb:/ipfs/QmcvwXQVUBRTEAoNcvwSVFmhpHUXQ21s2Hfj79hq2uQNVM", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": - { - keccak256: - "0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689", - urls: [ - "bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017", - "dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Address.sol": { - keccak256: - "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - urls: [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Context.sol": { - keccak256: - "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - urls: [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - keccak256: - "0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899", - urls: [ - "bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da", - "dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q", - ], - license: "MIT", - }, - }, - version: 1, - }, - ast: { - absolutePath: - "../node_modules/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", - id: 3866, - exportedSymbols: { - Address: [6155], - Context: [80709], - ERC1967Proxy: [81197], - ERC1967Upgrade: [84616], - IBeacon: [84736], - IERC1822Proxiable: [84726], - IERC1967: [84716], - ITransparentUpgradeableProxy: [3899], - Ownable: [2723], - Proxy: [84668], - ProxyAdmin: [3865], - StorageSlot: [84846], - TransparentUpgradeableProxy: [4188], - }, - nodeType: "SourceUnit", - src: "116:2744:37", - nodes: [ - { - id: 3731, - nodeType: "PragmaDirective", - src: "116:23:37", - nodes: [], - literals: ["solidity", "^", "0.8", ".0"], - }, - { - id: 3732, - nodeType: "ImportDirective", - src: "141:43:37", - nodes: [], - absolutePath: - "../node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - file: "./TransparentUpgradeableProxy.sol", - nameLocation: "-1:-1:-1", - scope: 3866, - sourceUnit: 4189, - symbolAliases: [], - unitAlias: "", - }, - { - id: 3733, - nodeType: "ImportDirective", - src: "185:34:37", - nodes: [], - absolutePath: - "../node_modules/@openzeppelin/contracts/access/Ownable.sol", - file: "../../access/Ownable.sol", - nameLocation: "-1:-1:-1", - scope: 3866, - sourceUnit: 2724, - symbolAliases: [], - unitAlias: "", - }, - { - id: 3865, - nodeType: "ContractDefinition", - src: "450:2409:37", - nodes: [ - { - id: 3770, - nodeType: "FunctionDefinition", - src: "650:438:37", - nodes: [], - body: { - id: 3769, - nodeType: "Block", - src: "756:332:37", - nodes: [], - statements: [ - { - assignments: [3746, 3748], - declarations: [ - { - constant: false, - id: 3746, - mutability: "mutable", - name: "success", - nameLocation: "929:7:37", - nodeType: "VariableDeclaration", - scope: 3769, - src: "924:12:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - typeName: { - id: 3745, - name: "bool", - nodeType: "ElementaryTypeName", - src: "924:4:37", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3748, - mutability: "mutable", - name: "returndata", - nameLocation: "951:10:37", - nodeType: "VariableDeclaration", - scope: 3769, - src: "938:23:37", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 3747, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "938:5:37", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 3756, - initialValue: { - arguments: [ - { - hexValue: "5c60da1b", - id: 3754, - isConstant: false, - isLValue: false, - isPure: true, - kind: "hexString", - lValueRequested: false, - nodeType: "Literal", - src: "991:13:37", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29", - typeString: 'literal_string hex"5c60da1b"', - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29", - typeString: 'literal_string hex"5c60da1b"', - }, - ], - expression: { - arguments: [ - { - id: 3751, - name: "proxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3740, - src: "973:5:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: - "contract ITransparentUpgradeableProxy", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: - "contract ITransparentUpgradeableProxy", - }, - ], - id: 3750, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "965:7:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 3749, - name: "address", - nodeType: "ElementaryTypeName", - src: "965:7:37", - typeDescriptions: {}, - }, - }, - id: 3752, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "965:14:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - id: 3753, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "980:10:37", - memberName: "staticcall", - nodeType: "MemberAccess", - src: "965:25:37", - typeDescriptions: { - typeIdentifier: - "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - typeString: - "function (bytes memory) view returns (bool,bytes memory)", - }, - }, - id: 3755, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "965:40:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - typeString: "tuple(bool,bytes memory)", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "923:82:37", - }, - { - expression: { - arguments: [ - { - id: 3758, - name: "success", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3746, - src: "1023:7:37", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 3757, - name: "require", - nodeType: "Identifier", - overloadedDeclarations: [-18, -18], - referencedDeclaration: -18, - src: "1015:7:37", - typeDescriptions: { - typeIdentifier: - "t_function_require_pure$_t_bool_$returns$__$", - typeString: "function (bool) pure", - }, - }, - id: 3759, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1015:16:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 3760, - nodeType: "ExpressionStatement", - src: "1015:16:37", - }, - { - expression: { - arguments: [ - { - id: 3763, - name: "returndata", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3748, - src: "1059:10:37", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - components: [ - { - id: 3765, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1072:7:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 3764, - name: "address", - nodeType: "ElementaryTypeName", - src: "1072:7:37", - typeDescriptions: {}, - }, - }, - ], - id: 3766, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "1071:9:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 3761, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "1048:3:37", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 3762, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "1052:6:37", - memberName: "decode", - nodeType: "MemberAccess", - src: "1048:10:37", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 3767, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1048:33:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - functionReturnParameters: 3744, - id: 3768, - nodeType: "Return", - src: "1041:40:37", - }, - ], - }, - documentation: { - id: 3737, - nodeType: "StructuredDocumentation", - src: "487:158:37", - text: " @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`.", - }, - functionSelector: "204e1c7a", - implemented: true, - kind: "function", - modifiers: [], - name: "getProxyImplementation", - nameLocation: "659:22:37", - parameters: { - id: 3741, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3740, - mutability: "mutable", - name: "proxy", - nameLocation: "711:5:37", - nodeType: "VariableDeclaration", - scope: 3770, - src: "682:34:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - typeName: { - id: 3739, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 3738, - name: "ITransparentUpgradeableProxy", - nameLocations: ["682:28:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 3899, - src: "682:28:37", - }, - referencedDeclaration: 3899, - src: "682:28:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - visibility: "internal", - }, - ], - src: "681:36:37", - }, - returnParameters: { - id: 3744, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3743, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 3770, - src: "747:7:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 3742, - name: "address", - nodeType: "ElementaryTypeName", - src: "747:7:37", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "746:9:37", - }, - scope: 3865, - stateMutability: "view", - virtual: true, - visibility: "public", - }, - { - id: 3804, - nodeType: "FunctionDefinition", - src: "1248:420:37", - nodes: [], - body: { - id: 3803, - nodeType: "Block", - src: "1345:323:37", - nodes: [], - statements: [ - { - assignments: [3780, 3782], - declarations: [ - { - constant: false, - id: 3780, - mutability: "mutable", - name: "success", - nameLocation: "1509:7:37", - nodeType: "VariableDeclaration", - scope: 3803, - src: "1504:12:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - typeName: { - id: 3779, - name: "bool", - nodeType: "ElementaryTypeName", - src: "1504:4:37", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3782, - mutability: "mutable", - name: "returndata", - nameLocation: "1531:10:37", - nodeType: "VariableDeclaration", - scope: 3803, - src: "1518:23:37", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 3781, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "1518:5:37", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 3790, - initialValue: { - arguments: [ - { - hexValue: "f851a440", - id: 3788, - isConstant: false, - isLValue: false, - isPure: true, - kind: "hexString", - lValueRequested: false, - nodeType: "Literal", - src: "1571:13:37", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7", - typeString: 'literal_string hex"f851a440"', - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7", - typeString: 'literal_string hex"f851a440"', - }, - ], - expression: { - arguments: [ - { - id: 3785, - name: "proxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3774, - src: "1553:5:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: - "contract ITransparentUpgradeableProxy", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: - "contract ITransparentUpgradeableProxy", - }, - ], - id: 3784, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1545:7:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 3783, - name: "address", - nodeType: "ElementaryTypeName", - src: "1545:7:37", - typeDescriptions: {}, - }, - }, - id: 3786, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1545:14:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - id: 3787, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1560:10:37", - memberName: "staticcall", - nodeType: "MemberAccess", - src: "1545:25:37", - typeDescriptions: { - typeIdentifier: - "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - typeString: - "function (bytes memory) view returns (bool,bytes memory)", - }, - }, - id: 3789, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1545:40:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - typeString: "tuple(bool,bytes memory)", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "1503:82:37", - }, - { - expression: { - arguments: [ - { - id: 3792, - name: "success", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3780, - src: "1603:7:37", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 3791, - name: "require", - nodeType: "Identifier", - overloadedDeclarations: [-18, -18], - referencedDeclaration: -18, - src: "1595:7:37", - typeDescriptions: { - typeIdentifier: - "t_function_require_pure$_t_bool_$returns$__$", - typeString: "function (bool) pure", - }, - }, - id: 3793, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1595:16:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 3794, - nodeType: "ExpressionStatement", - src: "1595:16:37", - }, - { - expression: { - arguments: [ - { - id: 3797, - name: "returndata", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3782, - src: "1639:10:37", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - components: [ - { - id: 3799, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1652:7:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 3798, - name: "address", - nodeType: "ElementaryTypeName", - src: "1652:7:37", - typeDescriptions: {}, - }, - }, - ], - id: 3800, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "1651:9:37", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 3795, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "1628:3:37", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 3796, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "1632:6:37", - memberName: "decode", - nodeType: "MemberAccess", - src: "1628:10:37", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 3801, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1628:33:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - functionReturnParameters: 3778, - id: 3802, - nodeType: "Return", - src: "1621:40:37", - }, - ], - }, - documentation: { - id: 3771, - nodeType: "StructuredDocumentation", - src: "1094:149:37", - text: " @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`.", - }, - functionSelector: "f3b7dead", - implemented: true, - kind: "function", - modifiers: [], - name: "getProxyAdmin", - nameLocation: "1257:13:37", - parameters: { - id: 3775, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3774, - mutability: "mutable", - name: "proxy", - nameLocation: "1300:5:37", - nodeType: "VariableDeclaration", - scope: 3804, - src: "1271:34:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - typeName: { - id: 3773, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 3772, - name: "ITransparentUpgradeableProxy", - nameLocations: ["1271:28:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 3899, - src: "1271:28:37", - }, - referencedDeclaration: 3899, - src: "1271:28:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - visibility: "internal", - }, - ], - src: "1270:36:37", - }, - returnParameters: { - id: 3778, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3777, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 3804, - src: "1336:7:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 3776, - name: "address", - nodeType: "ElementaryTypeName", - src: "1336:7:37", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "1335:9:37", - }, - scope: 3865, - stateMutability: "view", - virtual: true, - visibility: "public", - }, - { - id: 3822, - nodeType: "FunctionDefinition", - src: "1842:149:37", - nodes: [], - body: { - id: 3821, - nodeType: "Block", - src: "1947:44:37", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 3818, - name: "newAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3810, - src: "1975:8:37", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 3815, - name: "proxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3808, - src: "1957:5:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - id: 3817, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1963:11:37", - memberName: "changeAdmin", - nodeType: "MemberAccess", - referencedDeclaration: 3886, - src: "1957:17:37", - typeDescriptions: { - typeIdentifier: - "t_function_external_nonpayable$_t_address_$returns$__$", - typeString: "function (address) external", - }, - }, - id: 3819, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1957:27:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 3820, - nodeType: "ExpressionStatement", - src: "1957:27:37", - }, - ], - }, - documentation: { - id: 3805, - nodeType: "StructuredDocumentation", - src: "1674:163:37", - text: " @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`.", - }, - functionSelector: "7eff275e", - implemented: true, - kind: "function", - modifiers: [ - { - id: 3813, - kind: "modifierInvocation", - modifierName: { - id: 3812, - name: "onlyOwner", - nameLocations: ["1937:9:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 2642, - src: "1937:9:37", - }, - nodeType: "ModifierInvocation", - src: "1937:9:37", - }, - ], - name: "changeProxyAdmin", - nameLocation: "1851:16:37", - parameters: { - id: 3811, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3808, - mutability: "mutable", - name: "proxy", - nameLocation: "1897:5:37", - nodeType: "VariableDeclaration", - scope: 3822, - src: "1868:34:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - typeName: { - id: 3807, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 3806, - name: "ITransparentUpgradeableProxy", - nameLocations: ["1868:28:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 3899, - src: "1868:28:37", - }, - referencedDeclaration: 3899, - src: "1868:28:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3810, - mutability: "mutable", - name: "newAdmin", - nameLocation: "1912:8:37", - nodeType: "VariableDeclaration", - scope: 3822, - src: "1904:16:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 3809, - name: "address", - nodeType: "ElementaryTypeName", - src: "1904:7:37", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "1867:54:37", - }, - returnParameters: { - id: 3814, - nodeType: "ParameterList", - parameters: [], - src: "1947:0:37", - }, - scope: 3865, - stateMutability: "nonpayable", - virtual: true, - visibility: "public", - }, - { - id: 3840, - nodeType: "FunctionDefinition", - src: "2196:150:37", - nodes: [], - body: { - id: 3839, - nodeType: "Block", - src: "2298:48:37", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 3836, - name: "implementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3828, - src: "2324:14:37", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 3833, - name: "proxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3826, - src: "2308:5:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - id: 3835, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "2314:9:37", - memberName: "upgradeTo", - nodeType: "MemberAccess", - referencedDeclaration: 3891, - src: "2308:15:37", - typeDescriptions: { - typeIdentifier: - "t_function_external_nonpayable$_t_address_$returns$__$", - typeString: "function (address) external", - }, - }, - id: 3837, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "2308:31:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 3838, - nodeType: "ExpressionStatement", - src: "2308:31:37", - }, - ], - }, - documentation: { - id: 3823, - nodeType: "StructuredDocumentation", - src: "1997:194:37", - text: " @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`.", - }, - functionSelector: "99a88ec4", - implemented: true, - kind: "function", - modifiers: [ - { - id: 3831, - kind: "modifierInvocation", - modifierName: { - id: 3830, - name: "onlyOwner", - nameLocations: ["2288:9:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 2642, - src: "2288:9:37", - }, - nodeType: "ModifierInvocation", - src: "2288:9:37", - }, - ], - name: "upgrade", - nameLocation: "2205:7:37", - parameters: { - id: 3829, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3826, - mutability: "mutable", - name: "proxy", - nameLocation: "2242:5:37", - nodeType: "VariableDeclaration", - scope: 3840, - src: "2213:34:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - typeName: { - id: 3825, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 3824, - name: "ITransparentUpgradeableProxy", - nameLocations: ["2213:28:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 3899, - src: "2213:28:37", - }, - referencedDeclaration: 3899, - src: "2213:28:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3828, - mutability: "mutable", - name: "implementation", - nameLocation: "2257:14:37", - nodeType: "VariableDeclaration", - scope: 3840, - src: "2249:22:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 3827, - name: "address", - nodeType: "ElementaryTypeName", - src: "2249:7:37", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "2212:60:37", - }, - returnParameters: { - id: 3832, - nodeType: "ParameterList", - parameters: [], - src: "2298:0:37", - }, - scope: 3865, - stateMutability: "nonpayable", - virtual: true, - visibility: "public", - }, - { - id: 3864, - nodeType: "FunctionDefinition", - src: "2612:245:37", - nodes: [], - body: { - id: 3863, - nodeType: "Block", - src: "2778:79:37", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 3859, - name: "implementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3846, - src: "2829:14:37", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 3860, - name: "data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3848, - src: "2845:4:37", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - ], - expression: { - id: 3853, - name: "proxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 3844, - src: "2788:5:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - id: 3855, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "2794:16:37", - memberName: "upgradeToAndCall", - nodeType: "MemberAccess", - referencedDeclaration: 3898, - src: "2788:22:37", - typeDescriptions: { - typeIdentifier: - "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - typeString: - "function (address,bytes memory) payable external", - }, - }, - id: 3858, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - names: ["value"], - nodeType: "FunctionCallOptions", - options: [ - { - expression: { - id: 3856, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "2818:3:37", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 3857, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "2822:5:37", - memberName: "value", - nodeType: "MemberAccess", - src: "2818:9:37", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - ], - src: "2788:40:37", - typeDescriptions: { - typeIdentifier: - "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value", - typeString: - "function (address,bytes memory) payable external", - }, - }, - id: 3861, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "2788:62:37", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 3862, - nodeType: "ExpressionStatement", - src: "2788:62:37", - }, - ], - }, - documentation: { - id: 3841, - nodeType: "StructuredDocumentation", - src: "2352:255:37", - text: " @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`.", - }, - functionSelector: "9623609d", - implemented: true, - kind: "function", - modifiers: [ - { - id: 3851, - kind: "modifierInvocation", - modifierName: { - id: 3850, - name: "onlyOwner", - nameLocations: ["2768:9:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 2642, - src: "2768:9:37", - }, - nodeType: "ModifierInvocation", - src: "2768:9:37", - }, - ], - name: "upgradeAndCall", - nameLocation: "2621:14:37", - parameters: { - id: 3849, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 3844, - mutability: "mutable", - name: "proxy", - nameLocation: "2674:5:37", - nodeType: "VariableDeclaration", - scope: 3864, - src: "2645:34:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - typeName: { - id: 3843, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 3842, - name: "ITransparentUpgradeableProxy", - nameLocations: ["2645:28:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 3899, - src: "2645:28:37", - }, - referencedDeclaration: 3899, - src: "2645:28:37", - typeDescriptions: { - typeIdentifier: - "t_contract$_ITransparentUpgradeableProxy_$3899", - typeString: "contract ITransparentUpgradeableProxy", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3846, - mutability: "mutable", - name: "implementation", - nameLocation: "2697:14:37", - nodeType: "VariableDeclaration", - scope: 3864, - src: "2689:22:37", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 3845, - name: "address", - nodeType: "ElementaryTypeName", - src: "2689:7:37", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 3848, - mutability: "mutable", - name: "data", - nameLocation: "2734:4:37", - nodeType: "VariableDeclaration", - scope: 3864, - src: "2721:17:37", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 3847, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "2721:5:37", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "2635:109:37", - }, - returnParameters: { - id: 3852, - nodeType: "ParameterList", - parameters: [], - src: "2778:0:37", - }, - scope: 3865, - stateMutability: "payable", - virtual: true, - visibility: "public", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 3735, - name: "Ownable", - nameLocations: ["473:7:37"], - nodeType: "IdentifierPath", - referencedDeclaration: 2723, - src: "473:7:37", - }, - id: 3736, - nodeType: "InheritanceSpecifier", - src: "473:7:37", - }, - ], - canonicalName: "ProxyAdmin", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 3734, - nodeType: "StructuredDocumentation", - src: "221:228:37", - text: " @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.", - }, - fullyImplemented: true, - linearizedBaseContracts: [3865, 2723, 80709], - name: "ProxyAdmin", - nameLocation: "459:10:37", - scope: 3866, - usedErrors: [], - }, - ], - license: "MIT", - }, - id: 37, -} as const; diff --git a/example/abi/StaticMessageIdMultisigIsmFactory.ts b/example/abi/StaticMessageIdMultisigIsmFactory.ts deleted file mode 100644 index 400bca0a..00000000 --- a/example/abi/StaticMessageIdMultisigIsmFactory.ts +++ /dev/null @@ -1,1380 +0,0 @@ -export const StaticMessageIdMultisigIsmFactory = { - abi: [ - { - type: "function", - name: "deploy", - inputs: [ - { name: "_values", type: "address[]", internalType: "address[]" }, - { name: "_threshold", type: "uint8", internalType: "uint8" }, - ], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "getAddress", - inputs: [ - { name: "_values", type: "address[]", internalType: "address[]" }, - { name: "_threshold", type: "uint8", internalType: "uint8" }, - ], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "implementation", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - ], - bytecode: { - object: - "0x60a060405234801561001057600080fd5b5061001961002a565b6001600160a01b0316608052610067565b60006040516100389061005a565b604051809103906000f080158015610054573d6000803e3d6000fd5b50905090565b610d328061061a83390190565b60805161059261008860003960008181604b015261016e01526105926000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b14610046578063d4277ebc14610096578063ed547bf7146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a43660046103d3565b6100bc565b61006d6100b73660046103d3565b6100e6565b60008060006100cc86868661013b565b915091506100da82826101ab565b925050505b9392505050565b60008060006100f686868661013b565b91509150600061010683836101ab565b905073ffffffffffffffffffffffffffffffffffffffff81163b6100da57610130600084846101c7565b979650505050505050565b6000606060008585856040516020016101569392919061045f565b604051602081830303815290604052905060006101937f00000000000000000000000000000000000000000000000000000000000000008361032b565b82516020909301929092209791965090945050505050565b805160208201206000906101bf84826103a1565b949350505050565b600083471015610238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b81516000036102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161022f565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166100df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161022f565b60607f600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d738360601b7f5af43d3d93803e603457fd5bf30000000000000000000000000000000000000084855160405160200161038a9594939291906104cc565b604051602081830303815290604052905092915050565b60006100df8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6000806000604084860312156103e857600080fd5b833567ffffffffffffffff8082111561040057600080fd5b818601915086601f83011261041457600080fd5b81358181111561042357600080fd5b8760208260051b850101111561043857600080fd5b6020928301955093505084013560ff8116811461045457600080fd5b809150509250925092565b604080825281018390526000846060830182805b878110156104b457833573ffffffffffffffffffffffffffffffffffffffff811680821461049f578384fd5b84525060209384019390920191600101610473565b5050809250505060ff83166020830152949350505050565b858152600060207fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008716818401527fffffffffffffffffffffffffff0000000000000000000000000000000000000086166034840152845160005b8181101561054357868101830151858201604101528201610527565b506041930192830193909352506061019594505050505056fea26469706673582212206835b6900a7c99306533ee5fb7261b0c3341b0e1236fcfbffa5372fe01e0024464736f6c63430008130033608060405234801561001057600080fd5b50610d12806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632e0ed234146100465780636465e69f14610070578063f7e83aee1461008a575b600080fd5b6100596100543660046108b6565b6100ad565b6040516100679291906108f8565b60405180910390f35b610078600581565b60405160ff9091168152602001610067565b61009d61009836600461095c565b6100d8565b6040519015158152602001610067565b606060006100b96102f1565b8060200190518101906100cc9190610a31565b915091505b9250929050565b6000806100e786868686610321565b90506000806100f686866100ad565b9150915060008160ff1611610192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4e6f204d756c746973696749534d207468726573686f6c642070726573656e7460448201527f20666f72206d657373616765000000000000000000000000000000000000000060648201526084015b60405180910390fd5b81516000805b8360ff168110156102e05760006101ee876101b48e8e86610479565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049392505050565b90505b8383108015610245575085838151811061020d5761020d610b55565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561025a5761025383610bb3565b92506101f1565b8383106102c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217468726573686f6c64000000000000000000000000000000000000000000006044820152606401610189565b6102cc83610bb3565b925050806102d990610bb3565b9050610198565b5060019a9950505050505050505050565b60608060203603803580820391506040519250602081018301604052808352602083018183823750919392505050565b600061047061033084846104b9565b61033a87876104dc565b610344888861050c565b61034e898961051c565b61038d88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061053d92505050565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e097881b811660208084019190915260248301979097527f48595045524c414e45000000000000000000000000000000000000000000000060448301528251808303602d018152604d83018452805190880120606d830152608d8201959095529290951b90921660ad82015260b1808201929092528351808203909201825260d10190925281519101207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b95945050505050565b366000610487858585610548565b91509150935093915050565b60008060006104a2858561058d565b915091506104af816105cf565b5090505b92915050565b60006104c9600960058486610beb565b6104d291610c15565b60e01c9392505050565b60008281836104ec826020610c5d565b60ff16926104fc93929190610beb565b61050591610c76565b9392505050565b6000826020836104ec8280610c5d565b60008260408361052d826004610c5d565b60ff16926104c993929190610beb565b805160209091012090565b36600080610557604185610cb2565b610562906044610cc9565b90506000610571604183610cc9565b905061057f8183888a610beb565b935093505050935093915050565b60008082516041036105c35760208301516040840151606085015160001a6105b787828585610785565b945094505050506100d1565b506000905060026100d1565b60008160048111156105e3576105e3610b26565b036105eb5750565b60018160048111156105ff576105ff610b26565b03610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610189565b600281600481111561067a5761067a610b26565b036106e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610189565b60038160048111156106f5576106f5610b26565b03610782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610189565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156107bc575060009050600361086b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610810573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166108645760006001925092505061086b565b9150600090505b94509492505050565b60008083601f84011261088657600080fd5b50813567ffffffffffffffff81111561089e57600080fd5b6020830191508360208285010111156100d157600080fd5b600080602083850312156108c957600080fd5b823567ffffffffffffffff8111156108e057600080fd5b6108ec85828601610874565b90969095509350505050565b604080825283519082018190526000906020906060840190828701845b8281101561094757815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610915565b50505060ff9490941692019190915250919050565b6000806000806040858703121561097257600080fd5b843567ffffffffffffffff8082111561098a57600080fd5b61099688838901610874565b909650945060208701359150808211156109af57600080fd5b506109bc87828801610874565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b805173ffffffffffffffffffffffffffffffffffffffff81168114610a1b57600080fd5b919050565b805160ff81168114610a1b57600080fd5b60008060408385031215610a4457600080fd5b825167ffffffffffffffff80821115610a5c57600080fd5b818501915085601f830112610a7057600080fd5b8151602082821115610a8457610a846109c8565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715610ac757610ac76109c8565b604052928352818301935084810182019289841115610ae557600080fd5b948201945b83861015610b0a57610afb866109f7565b85529482019493820193610aea565b9650610b199050878201610a20565b9450505050509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610be457610be4610b84565b5060010190565b60008085851115610bfb57600080fd5b83861115610c0857600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610c555780818660040360031b1b83161692505b505092915050565b60ff81811683821601908111156104b3576104b3610b84565b803560208310156104b3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80820281158282048414176104b3576104b3610b84565b808201808211156104b3576104b3610b8456fea2646970667358221220f1388193c8f63060046d5de774d3e89a05ec036e2df567e67195da1226685bb664736f6c63430008130033", - sourceMap: - "1874:221:165:-:0;;;;;;;;;;;;-1:-1:-1;576:23:180;:21;:23::i;:::-;-1:-1:-1;;;;;559:40:180;;;1874:221:165;;1959:134;2019:7;2053:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2038:48;;1959:134;:::o;1874:221::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;", - linkReferences: {}, - }, - deployedBytecode: { - object: - "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b14610046578063d4277ebc14610096578063ed547bf7146100a9575b600080fd5b61006d7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006d6100a43660046103d3565b6100bc565b61006d6100b73660046103d3565b6100e6565b60008060006100cc86868661013b565b915091506100da82826101ab565b925050505b9392505050565b60008060006100f686868661013b565b91509150600061010683836101ab565b905073ffffffffffffffffffffffffffffffffffffffff81163b6100da57610130600084846101c7565b979650505050505050565b6000606060008585856040516020016101569392919061045f565b604051602081830303815290604052905060006101937f00000000000000000000000000000000000000000000000000000000000000008361032b565b82516020909301929092209791965090945050505050565b805160208201206000906101bf84826103a1565b949350505050565b600083471015610238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b81516000036102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161022f565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff81166100df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161022f565b60607f600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d738360601b7f5af43d3d93803e603457fd5bf30000000000000000000000000000000000000084855160405160200161038a9594939291906104cc565b604051602081830303815290604052905092915050565b60006100df8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6000806000604084860312156103e857600080fd5b833567ffffffffffffffff8082111561040057600080fd5b818601915086601f83011261041457600080fd5b81358181111561042357600080fd5b8760208260051b850101111561043857600080fd5b6020928301955093505084013560ff8116811461045457600080fd5b809150509250925092565b604080825281018390526000846060830182805b878110156104b457833573ffffffffffffffffffffffffffffffffffffffff811680821461049f578384fd5b84525060209384019390920191600101610473565b5050809250505060ff83166020830152949350505050565b858152600060207fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008716818401527fffffffffffffffffffffffffff0000000000000000000000000000000000000086166034840152845160005b8181101561054357868101830151858201604101528201610527565b506041930192830193909352506061019594505050505056fea26469706673582212206835b6900a7c99306533ee5fb7261b0c3341b0e1236fcfbffa5372fe01e0024464736f6c63430008130033", - sourceMap: - "1874:221:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:39:180;;;;;;;;190:42:282;178:55;;;160:74;;148:2;133:18;443:39:180;;;;;;;1827:296;;;;;;:::i;:::-;;:::i;1042:421::-;;;;;;:::i;:::-;;:::i;1827:296::-;1938:7;1958:13;1973:22;1999:71;2029:7;;2050:10;1999:16;:71::i;:::-;1957:113;;;;2087:29;2099:5;2106:9;2087:11;:29::i;:::-;2080:36;;;;1827:296;;;;;;:::o;1042:421::-;1142:7;1162:13;1177:22;1203:71;1233:7;;1254:10;1203:16;:71::i;:::-;1161:113;;;;1284:12;1299:29;1311:5;1318:9;1299:11;:29::i;:::-;1284:44;-1:-1:-1;1702:19:52;;;;1338:98:180;;1390:35;1405:1;1408:5;1415:9;1390:14;:35::i;:::-;1383:42;1452:4;-1:-1:-1;;;;;;;1042:421:180:o;2973:374::-;3090:7;3099:12;3123:22;3159:7;;3168:10;3148:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3123:56;;3189:22;3214:45;3233:14;3249:9;3214:18;:45::i;:::-;3285:20;;;;;;;;;;;;;-1:-1:-1;2973:374:180;;-1:-1:-1;;;;;2973:374:180:o;2435:236::-;2583:20;;;;;;2540:7;;2620:44;2643:5;2583:20;2620:22;:44::i;:::-;2613:51;2435:236;-1:-1:-1;;;;2435:236:180:o;1081:484:54:-;1168:12;1225:6;1200:21;:31;;1192:73;;;;;;;2111:2:282;1192:73:54;;;2093:21:282;2150:2;2130:18;;;2123:30;2189:31;2169:18;;;2162:59;2238:18;;1192:73:54;;;;;;;;;1283:8;:15;1302:1;1283:20;1275:65;;;;;;;2469:2:282;1275:65:54;;;2451:21:282;;;2488:18;;;2481:30;2547:34;2527:18;;;2520:62;2599:18;;1275:65:54;2267:356:282;1275:65:54;1478:4;1467:8;1461:15;1454:4;1444:8;1440:19;1432:6;1424:59;1416:67;-1:-1:-1;1510:18:54;;;1502:56;;;;;;;2830:2:282;1502:56:54;;;2812:21:282;2869:2;2849:18;;;2842:30;2908:27;2888:18;;;2881:55;2953:18;;1502:56:54;2628:349:282;337:343:178;449:12;526:6;558:15;550:24;;592:6;616:9;643;:16;492:181;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;473:200;;337:343;;;;:::o;1769:165:54:-;1852:7;1878:49;1893:4;1899:12;1921:4;2278:12;2385:4;2379:11;3604:12;3597:4;3592:3;3588:14;3581:36;3653:4;3646;3641:3;3637:14;3630:28;3683:8;3678:3;3671:21;3776:4;3771:3;3767:14;3754:27;;3887:4;3880:5;3872:20;3930:2;3913:20;;;2177:1772;-1:-1:-1;;;;2177:1772:54:o;245:778:282:-;338:6;346;354;407:2;395:9;386:7;382:23;378:32;375:52;;;423:1;420;413:12;375:52;463:9;450:23;492:18;533:2;525:6;522:14;519:34;;;549:1;546;539:12;519:34;587:6;576:9;572:22;562:32;;632:7;625:4;621:2;617:13;613:27;603:55;;654:1;651;644:12;603:55;694:2;681:16;720:2;712:6;709:14;706:34;;;736:1;733;726:12;706:34;791:7;784:4;774:6;771:1;767:14;763:2;759:23;755:34;752:47;749:67;;;812:1;809;802:12;749:67;843:4;835:13;;;;-1:-1:-1;867:6:282;-1:-1:-1;;908:20:282;;895:34;969:4;958:16;;948:27;;938:55;;989:1;986;979:12;938:55;1012:5;1002:15;;;245:778;;;;;:::o;1028:876::-;1252:2;1264:21;;;1237:18;;1320:22;;;1204:4;1399:6;1373:2;1358:18;;1204:4;;1454:368;1470:6;1465:3;1462:15;1454:368;;;1549:6;1536:20;1590:42;1583:5;1579:54;1666:2;1659:5;1656:13;1646:41;;1683:1;1680;1673:12;1646:41;1700:15;;-1:-1:-1;1738:4:282;1797:15;;;;1762:12;;;;1496:1;1487:11;1454:368;;;1458:3;;1839;1831:11;;;;1892:4;1884:6;1880:17;1873:4;1862:9;1858:20;1851:47;1028:876;;;;;;:::o;2982:821::-;3253:6;3248:3;3241:19;3223:3;3279:2;3323:66;3315:6;3311:79;3306:2;3301:3;3297:12;3290:101;3433:66;3425:6;3421:79;3416:2;3411:3;3407:12;3400:101;3530:6;3524:13;3555:1;3565:134;3579:6;3576:1;3573:13;3565:134;;;3668:14;;;3664:23;;3658:30;3640:11;;;3653:2;3636:20;3629:60;3594:10;;3565:134;;;-1:-1:-1;3758:2:282;3718:16;;3750:11;;;3743:27;;;;-1:-1:-1;3794:2:282;3786:11;;2982:821;-1:-1:-1;;;;;2982:821:282:o", - linkReferences: {}, - immutableReferences: { - "24705": [ - { start: 75, length: 32 }, - { start: 366, length: 32 }, - ], - }, - }, - methodIdentifiers: { - "deploy(address[],uint8)": "ed547bf7", - "getAddress(address[],uint8)": "d4277ebc", - "implementation()": "5c60da1b", - }, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_values","type":"address[]"},{"internalType":"uint8","name":"_threshold","type":"uint8"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_values","type":"address[]"},{"internalType":"uint8","name":"_threshold","type":"uint8"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"deploy(address[],uint8)":{"details":"Consider sorting addresses to ensure contract reuse","params":{"_threshold":"The threshold value to use","_values":"An array of addresses"},"returns":{"_0":"set The contract address representing this StaticThresholdAddressSet"}},"getAddress(address[],uint8)":{"details":"Consider sorting addresses to ensure contract reuse","params":{"_threshold":"The threshold value to use","_values":"An array of addresses"},"returns":{"_0":"set The contract address representing this StaticThresholdAddressSet"}}},"version":1},"userdoc":{"kind":"user","methods":{"deploy(address[],uint8)":{"notice":"Deploys a StaticThresholdAddressSet contract address for the given values"},"getAddress(address[],uint8)":{"notice":"Returns the StaticThresholdAddressSet contract address for the given values"}},"version":1}},"settings":{"compilationTarget":{"contracts/isms/multisig/StaticMultisigIsm.sol":"StaticMessageIdMultisigIsmFactory"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"../node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"../node_modules/@openzeppelin/contracts/utils/Create2.sol":{"keccak256":"0x6e00f269073ffc4350e56b7e8153c9092d5f70bfba423299990514183101ef89","license":"MIT","urls":["bzz-raw://8dc5ff5c204604be7594ce2fa9100a0638f22b5aada6ebec1e165b0f50a48447","dweb:/ipfs/QmfH7uWphPrq8jqwGvyh4pFnLEgEPmLwyGV2Bvx1Acjggh"]},"../node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","license":"MIT","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"]},"../node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58","license":"MIT","urls":["bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2","dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv"]},"../node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","license":"MIT","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"]},"../node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","license":"MIT","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"]},"contracts/interfaces/IInterchainSecurityModule.sol":{"keccak256":"0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce","license":"MIT OR Apache-2.0","urls":["bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2","dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p"]},"contracts/interfaces/isms/IMultisigIsm.sol":{"keccak256":"0x4815639fb16bc00a611ae978bbff47810dfd76b2b38b4613d7d893a7c35c4d34","license":"MIT OR Apache-2.0","urls":["bzz-raw://c386374a9e1154b027f8e921de9b333f8b6b7f6724e01ccb1d3c3fbca8aca7b4","dweb:/ipfs/QmQjPQFL1DSmqbyFFP49GgfEezzQBjz3c8SbThVADZi1Ui"]},"contracts/isms/libs/MerkleRootMultisigIsmMetadata.sol":{"keccak256":"0xb45298ff24fd4f12f2aeb93f6ab700749ef9952238c7693922bc8e6cca457395","license":"MIT OR Apache-2.0","urls":["bzz-raw://50a248b5d89c078b4d80a282c19292d5ef68770949ff9ec4c76275e6dbba8764","dweb:/ipfs/QmW1PCYZtaQBocy5yz3VPZK1YTSnwH9UWYnzcRVHn5rLR6"]},"contracts/isms/libs/MessageIdMultisigIsmMetadata.sol":{"keccak256":"0x6a5cd7301d1e1faa6c30a988c9f5235eb9b9c6e334b5bcc06c153df79687afb6","license":"MIT OR Apache-2.0","urls":["bzz-raw://af34bcfc9d7043ef1d83b8f79da13f9cefbf634cbb423ea0fc67b431e20a84fb","dweb:/ipfs/QmVoae2thC5eALT6d9h1Jtp6X9WgjvrPT2c4Cw2iXVkRmp"]},"contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol":{"keccak256":"0xa3ada238a0fbd182110ea62e6abf0f848fa46083d618073e68bd2a3845855f16","license":"MIT OR Apache-2.0","urls":["bzz-raw://fc311c80d2bc2aa46cfe557b27af7fa4cb153977f3d50d1e704799708c3545ab","dweb:/ipfs/Qmebic4t1BqVGc7PmVgDG18uA1kUTjn6wP54yPcoWjN9ea"]},"contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol":{"keccak256":"0x0d7eb241c6da40a3449bc81d02806718784749d16e591bb6f7e3667a683dffdf","license":"MIT OR Apache-2.0","urls":["bzz-raw://f136f852d61b97642c898b527bd23d99e93baf82f8d8f91a74c790e23359b2e1","dweb:/ipfs/QmQiGR6Dg9PEUTbJnA9QQqDpRKQsFwkTw2sGRuqFqNCZE1"]},"contracts/isms/multisig/AbstractMultisigIsm.sol":{"keccak256":"0x42090e87be4d24c0dbb1da731af40f1fcd48bc3748a7bf95051c652713cccbc6","license":"MIT OR Apache-2.0","urls":["bzz-raw://8253ca6b02d70488d2df8c5811277f05a68f5eff6b667c9a9b2bcda235b220ac","dweb:/ipfs/QmXQfvQUTesMvH9U8dCMrqf6SvSmQLTsa2Y1gzPSbaikvh"]},"contracts/isms/multisig/StaticMultisigIsm.sol":{"keccak256":"0x02f3a5f3f65dfa784c9bc4e29ffce28795d3879eba83367ece0b4f1ac3243349","license":"MIT OR Apache-2.0","urls":["bzz-raw://8f7a2b1634c2606a76798b7dee1b03cb3c15ce9b5f6d99b30437967fac56f0ac","dweb:/ipfs/QmeZdrxaanYCx5XxJvJpE4kxYTqAteKhf4T61WCPDB6Cn6"]},"contracts/libs/CheckpointLib.sol":{"keccak256":"0x2ffee95803acbb0fc19dc8c339e7f06d7fab2474daffaf5b9237162a7962b4d4","license":"MIT OR Apache-2.0","urls":["bzz-raw://ccea883a098c5f47f34310a3acf256aadcca0d221f8b686f7fcbf9a64339b4be","dweb:/ipfs/Qmc7faVY4mkWM3cndij2WxrH6wZUQrnS62Fyzjb3s27YhV"]},"contracts/libs/Merkle.sol":{"keccak256":"0x7cfc607a9b1614522237bcc02f647e4bf0ebf5aa22b76c4ac2fbbec74c7d67f9","license":"MIT OR Apache-2.0","urls":["bzz-raw://0b32ebf16293ac2f103fb946853ea8671e9d8d8c1b445356e74ad901eb28f69c","dweb:/ipfs/QmeuRgcNgN764Hj47dMyNQ3wewSqYjc2HTdzQLDofiuuMA"]},"contracts/libs/Message.sol":{"keccak256":"0x5319af5ade07bcb021d6373f0713f24f34431def78cda16fea6755f580fb5e78","license":"MIT OR Apache-2.0","urls":["bzz-raw://f531eecebd22a535398def83b078aff4f72d88940a0e9474ad3244a555f00d53","dweb:/ipfs/QmQjtjpf4qwaM9QVyWBsogRvZeokKESTVdsX3z9mt1wZFa"]},"contracts/libs/MetaProxy.sol":{"keccak256":"0x7e4a543d24b7bd4c8e0a96f03be6e275ba4acdc5bf220a17428afefcaed27b54","license":"CC0-1.0","urls":["bzz-raw://8113f5c60f7ad022a75b64315ddf400c2babd9ddf2fd9e67ddc0709ddf218388","dweb:/ipfs/QmRHrwChnVbvoSBFE3oUGZiUSRVD1DPJP8t9coZ9XRHJSn"]},"contracts/libs/StaticAddressSetFactory.sol":{"keccak256":"0x179dba222921cfcbf68879fa63bb4eb3659eb9c795bd48a20f6934762bd3a3da","license":"MIT OR Apache-2.0","urls":["bzz-raw://d12e36b93413b7c71129ea07ea5ba681adcb7165ee629a5cffb31f9605753209","dweb:/ipfs/QmS8seehj2nTv9EocdNpzoWhjX2GYAatChSNBPbsDz7kc1"]},"contracts/libs/TypeCasts.sol":{"keccak256":"0x7e3608c35e1109fc137cea688760f9c10223b1e7d110be113ad44ff716974ead","license":"MIT OR Apache-2.0","urls":["bzz-raw://6fff310e714caca96e809f5a56884a2e9edf842d928929d6228d6593ad8f3d52","dweb:/ipfs/QmSHQmcZV2GF8CUJjny128rDThPEDvUvrfA5kBs7kAK5GJ"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { internalType: "address[]", name: "_values", type: "address[]" }, - { internalType: "uint8", name: "_threshold", type: "uint8" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "deploy", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [ - { internalType: "address[]", name: "_values", type: "address[]" }, - { internalType: "uint8", name: "_threshold", type: "uint8" }, - ], - stateMutability: "view", - type: "function", - name: "getAddress", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "implementation", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - ], - devdoc: { - kind: "dev", - methods: { - "deploy(address[],uint8)": { - details: "Consider sorting addresses to ensure contract reuse", - params: { - _threshold: "The threshold value to use", - _values: "An array of addresses", - }, - returns: { - _0: "set The contract address representing this StaticThresholdAddressSet", - }, - }, - "getAddress(address[],uint8)": { - details: "Consider sorting addresses to ensure contract reuse", - params: { - _threshold: "The threshold value to use", - _values: "An array of addresses", - }, - returns: { - _0: "set The contract address representing this StaticThresholdAddressSet", - }, - }, - }, - version: 1, - }, - userdoc: { - kind: "user", - methods: { - "deploy(address[],uint8)": { - notice: - "Deploys a StaticThresholdAddressSet contract address for the given values", - }, - "getAddress(address[],uint8)": { - notice: - "Returns the StaticThresholdAddressSet contract address for the given values", - }, - }, - version: 1, - }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { - "contracts/isms/multisig/StaticMultisigIsm.sol": - "StaticMessageIdMultisigIsmFactory", - }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "../node_modules/@openzeppelin/contracts/utils/Address.sol": { - keccak256: - "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - urls: [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Create2.sol": { - keccak256: - "0x6e00f269073ffc4350e56b7e8153c9092d5f70bfba423299990514183101ef89", - urls: [ - "bzz-raw://8dc5ff5c204604be7594ce2fa9100a0638f22b5aada6ebec1e165b0f50a48447", - "dweb:/ipfs/QmfH7uWphPrq8jqwGvyh4pFnLEgEPmLwyGV2Bvx1Acjggh", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Strings.sol": { - keccak256: - "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0", - urls: [ - "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f", - "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - keccak256: - "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58", - urls: [ - "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2", - "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - keccak256: - "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3", - urls: [ - "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c", - "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - keccak256: - "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", - urls: [ - "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", - "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6", - ], - license: "MIT", - }, - "contracts/interfaces/IInterchainSecurityModule.sol": { - keccak256: - "0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce", - urls: [ - "bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2", - "dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/isms/IMultisigIsm.sol": { - keccak256: - "0x4815639fb16bc00a611ae978bbff47810dfd76b2b38b4613d7d893a7c35c4d34", - urls: [ - "bzz-raw://c386374a9e1154b027f8e921de9b333f8b6b7f6724e01ccb1d3c3fbca8aca7b4", - "dweb:/ipfs/QmQjPQFL1DSmqbyFFP49GgfEezzQBjz3c8SbThVADZi1Ui", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/libs/MerkleRootMultisigIsmMetadata.sol": { - keccak256: - "0xb45298ff24fd4f12f2aeb93f6ab700749ef9952238c7693922bc8e6cca457395", - urls: [ - "bzz-raw://50a248b5d89c078b4d80a282c19292d5ef68770949ff9ec4c76275e6dbba8764", - "dweb:/ipfs/QmW1PCYZtaQBocy5yz3VPZK1YTSnwH9UWYnzcRVHn5rLR6", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/libs/MessageIdMultisigIsmMetadata.sol": { - keccak256: - "0x6a5cd7301d1e1faa6c30a988c9f5235eb9b9c6e334b5bcc06c153df79687afb6", - urls: [ - "bzz-raw://af34bcfc9d7043ef1d83b8f79da13f9cefbf634cbb423ea0fc67b431e20a84fb", - "dweb:/ipfs/QmVoae2thC5eALT6d9h1Jtp6X9WgjvrPT2c4Cw2iXVkRmp", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol": { - keccak256: - "0xa3ada238a0fbd182110ea62e6abf0f848fa46083d618073e68bd2a3845855f16", - urls: [ - "bzz-raw://fc311c80d2bc2aa46cfe557b27af7fa4cb153977f3d50d1e704799708c3545ab", - "dweb:/ipfs/Qmebic4t1BqVGc7PmVgDG18uA1kUTjn6wP54yPcoWjN9ea", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol": { - keccak256: - "0x0d7eb241c6da40a3449bc81d02806718784749d16e591bb6f7e3667a683dffdf", - urls: [ - "bzz-raw://f136f852d61b97642c898b527bd23d99e93baf82f8d8f91a74c790e23359b2e1", - "dweb:/ipfs/QmQiGR6Dg9PEUTbJnA9QQqDpRKQsFwkTw2sGRuqFqNCZE1", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/multisig/AbstractMultisigIsm.sol": { - keccak256: - "0x42090e87be4d24c0dbb1da731af40f1fcd48bc3748a7bf95051c652713cccbc6", - urls: [ - "bzz-raw://8253ca6b02d70488d2df8c5811277f05a68f5eff6b667c9a9b2bcda235b220ac", - "dweb:/ipfs/QmXQfvQUTesMvH9U8dCMrqf6SvSmQLTsa2Y1gzPSbaikvh", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/isms/multisig/StaticMultisigIsm.sol": { - keccak256: - "0x02f3a5f3f65dfa784c9bc4e29ffce28795d3879eba83367ece0b4f1ac3243349", - urls: [ - "bzz-raw://8f7a2b1634c2606a76798b7dee1b03cb3c15ce9b5f6d99b30437967fac56f0ac", - "dweb:/ipfs/QmeZdrxaanYCx5XxJvJpE4kxYTqAteKhf4T61WCPDB6Cn6", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/CheckpointLib.sol": { - keccak256: - "0x2ffee95803acbb0fc19dc8c339e7f06d7fab2474daffaf5b9237162a7962b4d4", - urls: [ - "bzz-raw://ccea883a098c5f47f34310a3acf256aadcca0d221f8b686f7fcbf9a64339b4be", - "dweb:/ipfs/Qmc7faVY4mkWM3cndij2WxrH6wZUQrnS62Fyzjb3s27YhV", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/Merkle.sol": { - keccak256: - "0x7cfc607a9b1614522237bcc02f647e4bf0ebf5aa22b76c4ac2fbbec74c7d67f9", - urls: [ - "bzz-raw://0b32ebf16293ac2f103fb946853ea8671e9d8d8c1b445356e74ad901eb28f69c", - "dweb:/ipfs/QmeuRgcNgN764Hj47dMyNQ3wewSqYjc2HTdzQLDofiuuMA", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/Message.sol": { - keccak256: - "0x5319af5ade07bcb021d6373f0713f24f34431def78cda16fea6755f580fb5e78", - urls: [ - "bzz-raw://f531eecebd22a535398def83b078aff4f72d88940a0e9474ad3244a555f00d53", - "dweb:/ipfs/QmQjtjpf4qwaM9QVyWBsogRvZeokKESTVdsX3z9mt1wZFa", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/MetaProxy.sol": { - keccak256: - "0x7e4a543d24b7bd4c8e0a96f03be6e275ba4acdc5bf220a17428afefcaed27b54", - urls: [ - "bzz-raw://8113f5c60f7ad022a75b64315ddf400c2babd9ddf2fd9e67ddc0709ddf218388", - "dweb:/ipfs/QmRHrwChnVbvoSBFE3oUGZiUSRVD1DPJP8t9coZ9XRHJSn", - ], - license: "CC0-1.0", - }, - "contracts/libs/StaticAddressSetFactory.sol": { - keccak256: - "0x179dba222921cfcbf68879fa63bb4eb3659eb9c795bd48a20f6934762bd3a3da", - urls: [ - "bzz-raw://d12e36b93413b7c71129ea07ea5ba681adcb7165ee629a5cffb31f9605753209", - "dweb:/ipfs/QmS8seehj2nTv9EocdNpzoWhjX2GYAatChSNBPbsDz7kc1", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/libs/TypeCasts.sol": { - keccak256: - "0x7e3608c35e1109fc137cea688760f9c10223b1e7d110be113ad44ff716974ead", - urls: [ - "bzz-raw://6fff310e714caca96e809f5a56884a2e9edf842d928929d6228d6593ad8f3d52", - "dweb:/ipfs/QmSHQmcZV2GF8CUJjny128rDThPEDvUvrfA5kBs7kAK5GJ", - ], - license: "MIT OR Apache-2.0", - }, - }, - version: 1, - }, - ast: { - absolutePath: "contracts/isms/multisig/StaticMultisigIsm.sol", - id: 22612, - exportedSymbols: { - AbstractMerkleRootMultisigIsm: [22302], - AbstractMessageIdMultisigIsm: [22380], - AbstractMetaProxyMultisigIsm: [22563], - AbstractMultisigIsm: [22521], - MetaProxy: [24653], - StaticMerkleRootMultisigIsm: [22569], - StaticMerkleRootMultisigIsmFactory: [22593], - StaticMessageIdMultisigIsm: [22575], - StaticMessageIdMultisigIsmFactory: [22611], - StaticThresholdAddressSetFactory: [24855], - }, - nodeType: "SourceUnit", - src: "46:2050:165", - nodes: [ - { - id: 22523, - nodeType: "PragmaDirective", - src: "46:24:165", - nodes: [], - literals: ["solidity", ">=", "0.8", ".0"], - }, - { - id: 22525, - nodeType: "ImportDirective", - src: "117:62:165", - nodes: [], - absolutePath: "contracts/isms/multisig/AbstractMultisigIsm.sol", - file: "./AbstractMultisigIsm.sol", - nameLocation: "-1:-1:-1", - scope: 22612, - sourceUnit: 22522, - symbolAliases: [ - { - foreign: { - id: 22524, - name: "AbstractMultisigIsm", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 22521, - src: "125:19:165", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 22527, - nodeType: "ImportDirective", - src: "180:82:165", - nodes: [], - absolutePath: - "contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol", - file: "./AbstractMerkleRootMultisigIsm.sol", - nameLocation: "-1:-1:-1", - scope: 22612, - sourceUnit: 22303, - symbolAliases: [ - { - foreign: { - id: 22526, - name: "AbstractMerkleRootMultisigIsm", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 22302, - src: "188:29:165", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 22529, - nodeType: "ImportDirective", - src: "263:80:165", - nodes: [], - absolutePath: - "contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol", - file: "./AbstractMessageIdMultisigIsm.sol", - nameLocation: "-1:-1:-1", - scope: 22612, - sourceUnit: 22381, - symbolAliases: [ - { - foreign: { - id: 22528, - name: "AbstractMessageIdMultisigIsm", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 22380, - src: "271:28:165", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 22531, - nodeType: "ImportDirective", - src: "344:51:165", - nodes: [], - absolutePath: "contracts/libs/MetaProxy.sol", - file: "../../libs/MetaProxy.sol", - nameLocation: "-1:-1:-1", - scope: 22612, - sourceUnit: 24654, - symbolAliases: [ - { - foreign: { - id: 22530, - name: "MetaProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 24653, - src: "352:9:165", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 22533, - nodeType: "ImportDirective", - src: "396:88:165", - nodes: [], - absolutePath: "contracts/libs/StaticAddressSetFactory.sol", - file: "../../libs/StaticAddressSetFactory.sol", - nameLocation: "-1:-1:-1", - scope: 22612, - sourceUnit: 24908, - symbolAliases: [ - { - foreign: { - id: 22532, - name: "StaticThresholdAddressSetFactory", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 24855, - src: "404:32:165", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 22563, - nodeType: "ContractDefinition", - src: "631:326:165", - nodes: [ - { - id: 22562, - nodeType: "FunctionDefinition", - src: "762:193:165", - nodes: [], - body: { - id: 22561, - nodeType: "Block", - src: "879:76:165", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - arguments: [], - expression: { - argumentTypes: [], - expression: { - id: 22550, - name: "MetaProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 24653, - src: "907:9:165", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_MetaProxy_$24653_$", - typeString: "type(library MetaProxy)", - }, - }, - id: 22551, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "917:8:165", - memberName: "metadata", - nodeType: "MemberAccess", - referencedDeclaration: 24652, - src: "907:18:165", - typeDescriptions: { - typeIdentifier: - "t_function_internal_pure$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () pure returns (bytes memory)", - }, - }, - id: 22552, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "907:20:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - components: [ - { - baseExpression: { - id: 22554, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "930:7:165", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 22553, - name: "address", - nodeType: "ElementaryTypeName", - src: "930:7:165", - typeDescriptions: {}, - }, - }, - id: 22555, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "IndexAccess", - src: "930:9:165", - typeDescriptions: { - typeIdentifier: - "t_type$_t_array$_t_address_$dyn_memory_ptr_$", - typeString: "type(address[] memory)", - }, - }, - { - id: 22557, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "941:5:165", - typeDescriptions: { - typeIdentifier: "t_type$_t_uint8_$", - typeString: "type(uint8)", - }, - typeName: { - id: 22556, - name: "uint8", - nodeType: "ElementaryTypeName", - src: "941:5:165", - typeDescriptions: {}, - }, - }, - ], - id: 22558, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "929:18:165", - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$", - typeString: - "tuple(type(address[] memory),type(uint8))", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { - typeIdentifier: - "t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$", - typeString: - "tuple(type(address[] memory),type(uint8))", - }, - ], - expression: { - id: 22548, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "896:3:165", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 22549, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "900:6:165", - memberName: "decode", - nodeType: "MemberAccess", - src: "896:10:165", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 22559, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "896:52:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$", - typeString: "tuple(address[] memory,uint8)", - }, - }, - functionReturnParameters: 22547, - id: 22560, - nodeType: "Return", - src: "889:59:165", - }, - ], - }, - baseFunctions: [22406], - documentation: { - id: 22537, - nodeType: "StructuredDocumentation", - src: "707:50:165", - text: " @inheritdoc AbstractMultisigIsm", - }, - functionSelector: "2e0ed234", - implemented: true, - kind: "function", - modifiers: [], - name: "validatorsAndThreshold", - nameLocation: "771:22:165", - overrides: { - id: 22541, - nodeType: "OverrideSpecifier", - overrides: [], - src: "836:8:165", - }, - parameters: { - id: 22540, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 22539, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 22562, - src: "803:14:165", - stateVariable: false, - storageLocation: "calldata", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes", - }, - typeName: { - id: 22538, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "803:5:165", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "793:30:165", - }, - returnParameters: { - id: 22547, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 22544, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 22562, - src: "854:16:165", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_array$_t_address_$dyn_memory_ptr", - typeString: "address[]", - }, - typeName: { - baseType: { - id: 22542, - name: "address", - nodeType: "ElementaryTypeName", - src: "854:7:165", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - id: 22543, - nodeType: "ArrayTypeName", - src: "854:9:165", - typeDescriptions: { - typeIdentifier: "t_array$_t_address_$dyn_storage_ptr", - typeString: "address[]", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 22546, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 22562, - src: "872:5:165", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - typeName: { - id: 22545, - name: "uint8", - nodeType: "ElementaryTypeName", - src: "872:5:165", - typeDescriptions: { - typeIdentifier: "t_uint8", - typeString: "uint8", - }, - }, - visibility: "internal", - }, - ], - src: "853:25:165", - }, - scope: 22563, - stateMutability: "pure", - virtual: false, - visibility: "public", - }, - ], - abstract: true, - baseContracts: [ - { - baseName: { - id: 22535, - name: "AbstractMultisigIsm", - nameLocations: ["681:19:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22521, - src: "681:19:165", - }, - id: 22536, - nodeType: "InheritanceSpecifier", - src: "681:19:165", - }, - ], - canonicalName: "AbstractMetaProxyMultisigIsm", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 22534, - nodeType: "StructuredDocumentation", - src: "486:144:165", - text: " @title AbstractMetaProxyMultisigIsm\n @notice Manages per-domain m-of-n Validator set that is used\n to verify interchain messages.", - }, - fullyImplemented: false, - linearizedBaseContracts: [22563, 22521, 21152, 20729], - name: "AbstractMetaProxyMultisigIsm", - nameLocation: "649:28:165", - scope: 22612, - usedErrors: [], - }, - { - id: 22569, - nodeType: "ContractDefinition", - src: "1209:110:165", - nodes: [], - abstract: false, - baseContracts: [ - { - baseName: { - id: 22565, - name: "AbstractMerkleRootMultisigIsm", - nameLocations: ["1253:29:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22302, - src: "1253:29:165", - }, - id: 22566, - nodeType: "InheritanceSpecifier", - src: "1253:29:165", - }, - { - baseName: { - id: 22567, - name: "AbstractMetaProxyMultisigIsm", - nameLocations: ["1288:28:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22563, - src: "1288:28:165", - }, - id: 22568, - nodeType: "InheritanceSpecifier", - src: "1288:28:165", - }, - ], - canonicalName: "StaticMerkleRootMultisigIsm", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 22564, - nodeType: "StructuredDocumentation", - src: "995:213:165", - text: " @title StaticMerkleRootMultisigIsm\n @notice Manages per-domain m-of-n validator set that is used\n to verify interchain messages using a merkle root signature quorum\n and merkle proof of inclusion.", - }, - fullyImplemented: true, - linearizedBaseContracts: [22569, 22563, 22302, 22521, 21152, 20729], - name: "StaticMerkleRootMultisigIsm", - nameLocation: "1218:27:165", - scope: 22612, - usedErrors: [], - }, - { - id: 22575, - nodeType: "ContractDefinition", - src: "1500:108:165", - nodes: [], - abstract: false, - baseContracts: [ - { - baseName: { - id: 22571, - name: "AbstractMessageIdMultisigIsm", - nameLocations: ["1543:28:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22380, - src: "1543:28:165", - }, - id: 22572, - nodeType: "InheritanceSpecifier", - src: "1543:28:165", - }, - { - baseName: { - id: 22573, - name: "AbstractMetaProxyMultisigIsm", - nameLocations: ["1577:28:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22563, - src: "1577:28:165", - }, - id: 22574, - nodeType: "InheritanceSpecifier", - src: "1577:28:165", - }, - ], - canonicalName: "StaticMessageIdMultisigIsm", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 22570, - nodeType: "StructuredDocumentation", - src: "1321:178:165", - text: " @title StaticMessageIdMultisigIsm\n @notice Manages per-domain m-of-n validator set that is used\n to verify interchain messages using a message ID signature quorum.", - }, - fullyImplemented: true, - linearizedBaseContracts: [22575, 22563, 22380, 22521, 21152, 20729], - name: "StaticMessageIdMultisigIsm", - nameLocation: "1509:26:165", - scope: 22612, - usedErrors: [], - }, - { - id: 22593, - nodeType: "ContractDefinition", - src: "1645:227:165", - nodes: [ - { - id: 22592, - nodeType: "FunctionDefinition", - src: "1735:135:165", - nodes: [], - body: { - id: 22591, - nodeType: "Block", - src: "1804:66:165", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - arguments: [], - expression: { - argumentTypes: [], - id: 22587, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "NewExpression", - src: "1829:31:165", - typeDescriptions: { - typeIdentifier: - "t_function_creation_nonpayable$__$returns$_t_contract$_StaticMerkleRootMultisigIsm_$22569_$", - typeString: - "function () returns (contract StaticMerkleRootMultisigIsm)", - }, - typeName: { - id: 22586, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 22585, - name: "StaticMerkleRootMultisigIsm", - nameLocations: ["1833:27:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22569, - src: "1833:27:165", - }, - referencedDeclaration: 22569, - src: "1833:27:165", - typeDescriptions: { - typeIdentifier: - "t_contract$_StaticMerkleRootMultisigIsm_$22569", - typeString: - "contract StaticMerkleRootMultisigIsm", - }, - }, - }, - id: 22588, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1829:33:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_contract$_StaticMerkleRootMultisigIsm_$22569", - typeString: "contract StaticMerkleRootMultisigIsm", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_contract$_StaticMerkleRootMultisigIsm_$22569", - typeString: "contract StaticMerkleRootMultisigIsm", - }, - ], - id: 22584, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1821:7:165", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 22583, - name: "address", - nodeType: "ElementaryTypeName", - src: "1821:7:165", - typeDescriptions: {}, - }, - }, - id: 22589, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1821:42:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - functionReturnParameters: 22582, - id: 22590, - nodeType: "Return", - src: "1814:49:165", - }, - ], - }, - baseFunctions: [24719], - implemented: true, - kind: "function", - modifiers: [], - name: "_deployImplementation", - nameLocation: "1744:21:165", - overrides: { - id: 22579, - nodeType: "OverrideSpecifier", - overrides: [], - src: "1777:8:165", - }, - parameters: { - id: 22578, - nodeType: "ParameterList", - parameters: [], - src: "1765:2:165", - }, - returnParameters: { - id: 22582, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 22581, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 22592, - src: "1795:7:165", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 22580, - name: "address", - nodeType: "ElementaryTypeName", - src: "1795:7:165", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "1794:9:165", - }, - scope: 22593, - stateMutability: "nonpayable", - virtual: false, - visibility: "internal", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 22576, - name: "StaticThresholdAddressSetFactory", - nameLocations: ["1696:32:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 24855, - src: "1696:32:165", - }, - id: 22577, - nodeType: "InheritanceSpecifier", - src: "1696:32:165", - }, - ], - canonicalName: "StaticMerkleRootMultisigIsmFactory", - contractDependencies: [22569], - contractKind: "contract", - fullyImplemented: true, - linearizedBaseContracts: [22593, 24855], - name: "StaticMerkleRootMultisigIsmFactory", - nameLocation: "1654:34:165", - scope: 22612, - usedErrors: [], - }, - { - id: 22611, - nodeType: "ContractDefinition", - src: "1874:221:165", - nodes: [ - { - id: 22610, - nodeType: "FunctionDefinition", - src: "1959:134:165", - nodes: [], - body: { - id: 22609, - nodeType: "Block", - src: "2028:65:165", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - arguments: [], - expression: { - argumentTypes: [], - id: 22605, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "NewExpression", - src: "2053:30:165", - typeDescriptions: { - typeIdentifier: - "t_function_creation_nonpayable$__$returns$_t_contract$_StaticMessageIdMultisigIsm_$22575_$", - typeString: - "function () returns (contract StaticMessageIdMultisigIsm)", - }, - typeName: { - id: 22604, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 22603, - name: "StaticMessageIdMultisigIsm", - nameLocations: ["2057:26:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 22575, - src: "2057:26:165", - }, - referencedDeclaration: 22575, - src: "2057:26:165", - typeDescriptions: { - typeIdentifier: - "t_contract$_StaticMessageIdMultisigIsm_$22575", - typeString: "contract StaticMessageIdMultisigIsm", - }, - }, - }, - id: 22606, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "2053:32:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_contract$_StaticMessageIdMultisigIsm_$22575", - typeString: "contract StaticMessageIdMultisigIsm", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_contract$_StaticMessageIdMultisigIsm_$22575", - typeString: "contract StaticMessageIdMultisigIsm", - }, - ], - id: 22602, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "2045:7:165", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 22601, - name: "address", - nodeType: "ElementaryTypeName", - src: "2045:7:165", - typeDescriptions: {}, - }, - }, - id: 22607, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "2045:41:165", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - functionReturnParameters: 22600, - id: 22608, - nodeType: "Return", - src: "2038:48:165", - }, - ], - }, - baseFunctions: [24719], - implemented: true, - kind: "function", - modifiers: [], - name: "_deployImplementation", - nameLocation: "1968:21:165", - overrides: { - id: 22597, - nodeType: "OverrideSpecifier", - overrides: [], - src: "2001:8:165", - }, - parameters: { - id: 22596, - nodeType: "ParameterList", - parameters: [], - src: "1989:2:165", - }, - returnParameters: { - id: 22600, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 22599, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 22610, - src: "2019:7:165", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 22598, - name: "address", - nodeType: "ElementaryTypeName", - src: "2019:7:165", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "2018:9:165", - }, - scope: 22611, - stateMutability: "nonpayable", - virtual: false, - visibility: "internal", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 22594, - name: "StaticThresholdAddressSetFactory", - nameLocations: ["1920:32:165"], - nodeType: "IdentifierPath", - referencedDeclaration: 24855, - src: "1920:32:165", - }, - id: 22595, - nodeType: "InheritanceSpecifier", - src: "1920:32:165", - }, - ], - canonicalName: "StaticMessageIdMultisigIsmFactory", - contractDependencies: [22575], - contractKind: "contract", - fullyImplemented: true, - linearizedBaseContracts: [22611, 24855], - name: "StaticMessageIdMultisigIsmFactory", - nameLocation: "1883:33:165", - scope: 22612, - usedErrors: [], - }, - ], - license: "MIT OR Apache-2.0", - }, - id: 165, -} as const; diff --git a/example/abi/TestRecipient.ts b/example/abi/TestRecipient.ts deleted file mode 100644 index a77d6913..00000000 --- a/example/abi/TestRecipient.ts +++ /dev/null @@ -1,1842 +0,0 @@ -export const TestRecipient = { - abi: [ - { - type: "function", - name: "fooBar", - inputs: [ - { name: "amount", type: "uint256", internalType: "uint256" }, - { name: "message", type: "string", internalType: "string" }, - ], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "handle", - inputs: [ - { name: "_origin", type: "uint32", internalType: "uint32" }, - { name: "_sender", type: "bytes32", internalType: "bytes32" }, - { name: "_data", type: "bytes", internalType: "bytes" }, - ], - outputs: [], - stateMutability: "payable", - }, - { - type: "function", - name: "interchainSecurityModule", - inputs: [], - outputs: [ - { - name: "", - type: "address", - internalType: "contract IInterchainSecurityModule", - }, - ], - stateMutability: "view", - }, - { - type: "function", - name: "lastCallMessage", - inputs: [], - outputs: [{ name: "", type: "string", internalType: "string" }], - stateMutability: "view", - }, - { - type: "function", - name: "lastCaller", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "lastData", - inputs: [], - outputs: [{ name: "", type: "bytes", internalType: "bytes" }], - stateMutability: "view", - }, - { - type: "function", - name: "lastSender", - inputs: [], - outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }], - stateMutability: "view", - }, - { - type: "function", - name: "owner", - inputs: [], - outputs: [{ name: "", type: "address", internalType: "address" }], - stateMutability: "view", - }, - { - type: "function", - name: "renounceOwnership", - inputs: [], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "setInterchainSecurityModule", - inputs: [{ name: "_ism", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "function", - name: "transferOwnership", - inputs: [{ name: "newOwner", type: "address", internalType: "address" }], - outputs: [], - stateMutability: "nonpayable", - }, - { - type: "event", - name: "OwnershipTransferred", - inputs: [ - { - name: "previousOwner", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "newOwner", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "ReceivedCall", - inputs: [ - { - name: "caller", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "amount", - type: "uint256", - indexed: false, - internalType: "uint256", - }, - { - name: "message", - type: "string", - indexed: false, - internalType: "string", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "ReceivedMessage", - inputs: [ - { - name: "origin", - type: "uint32", - indexed: true, - internalType: "uint32", - }, - { - name: "sender", - type: "bytes32", - indexed: true, - internalType: "bytes32", - }, - { - name: "value", - type: "uint256", - indexed: true, - internalType: "uint256", - }, - { - name: "message", - type: "string", - indexed: false, - internalType: "string", - }, - ], - anonymous: false, - }, - ], - bytecode: { - object: - "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a498061007e6000396000f3fe6080604052600436106100bb5760003560e01c8063715018a611610074578063de523cf31161004e578063de523cf3146101eb578063f07c1f4714610218578063f2fde38b1461023857600080fd5b8063715018a6146101965780638da5cb5b146101ab578063a4982fde146101d657600080fd5b80632113522a116100a55780632113522a1461010d578063256fec881461015f57806356d5d4751461018357600080fd5b80626e75ec146100c05780630e72cc06146100eb575b600080fd5b3480156100cc57600080fd5b506100d5610258565b6040516100e29190610656565b60405180910390f35b3480156100f757600080fd5b5061010b610106366004610670565b6102e6565b005b34801561011957600080fd5b5060045461013a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b34801561016b57600080fd5b5061017560025481565b6040519081526020016100e2565b61010b6101913660046106ef565b610335565b3480156101a257600080fd5b5061010b610390565b3480156101b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661013a565b3480156101e257600080fd5b506100d56103a4565b3480156101f757600080fd5b5060015461013a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022457600080fd5b5061010b610233366004610754565b6103b1565b34801561024457600080fd5b5061010b610253366004610670565b610440565b60038054610265906107a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610291906107a0565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b6102ee6104fc565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b34838563ffffffff167fecdc36fa3681f5d9c559dcbc399417db6f0ac0d81a78529685a1150265971d55858560405161036f92919061083c565b60405180910390a4600283905560036103898284836108d6565b5050505050565b6103986104fc565b6103a2600061057d565b565b60058054610265906107a0565b3373ffffffffffffffffffffffffffffffffffffffff167f97d8367a1f39eb9e97f262fafbb05925c0bcfe120aaad7b9737cae34f749c2068484846040516103fb939291906109f0565b60405180910390a2600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600561043a8284836108d6565b50505050565b6104486104fc565b73ffffffffffffffffffffffffffffffffffffffff81166104f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104f98161057d565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000815180845260005b81811015610618576020818501810151868301820152016105fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061066960208301846105f2565b9392505050565b60006020828403121561068257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461066957600080fd5b60008083601f8401126106b857600080fd5b50813567ffffffffffffffff8111156106d057600080fd5b6020830191508360208285010111156106e857600080fd5b9250929050565b6000806000806060858703121561070557600080fd5b843563ffffffff8116811461071957600080fd5b935060208501359250604085013567ffffffffffffffff81111561073c57600080fd5b610748878288016106a6565b95989497509550505050565b60008060006040848603121561076957600080fd5b83359250602084013567ffffffffffffffff81111561078757600080fd5b610793868287016106a6565b9497909650939450505050565b600181811c908216806107b457607f821691505b6020821081036107ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006108506020830184866107f3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156108d157600081815260208120601f850160051c810160208610156108ae5750805b601f850160051c820191505b818110156108cd578281556001016108ba565b5050505b505050565b67ffffffffffffffff8311156108ee576108ee610858565b610902836108fc83546107a0565b83610887565b6000601f841160018114610954576000851561091e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610389565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156109a35786850135825560209485019460019092019101610983565b50868210156109de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152604060208201526000610a0a6040830184866107f3565b9594505050505056fea26469706673582212202b7e1b4a24853f1faba25a3a1a65a34351b957cc7d8abd2a2ba47ecd66f9a7b664736f6c63430008130033", - sourceMap: - "336:1157:216:-:0;;;;;;;;;;;;-1:-1:-1;936:32:25;719:10:53;936:18:25;:32::i;:::-;336:1157:216;;2426:187:25;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:25;;;-1:-1:-1;;;;;;2534:17:25;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;336:1157:216:-;;;;;;;", - linkReferences: {}, - }, - deployedBytecode: { - object: - "0x6080604052600436106100bb5760003560e01c8063715018a611610074578063de523cf31161004e578063de523cf3146101eb578063f07c1f4714610218578063f2fde38b1461023857600080fd5b8063715018a6146101965780638da5cb5b146101ab578063a4982fde146101d657600080fd5b80632113522a116100a55780632113522a1461010d578063256fec881461015f57806356d5d4751461018357600080fd5b80626e75ec146100c05780630e72cc06146100eb575b600080fd5b3480156100cc57600080fd5b506100d5610258565b6040516100e29190610656565b60405180910390f35b3480156100f757600080fd5b5061010b610106366004610670565b6102e6565b005b34801561011957600080fd5b5060045461013a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b34801561016b57600080fd5b5061017560025481565b6040519081526020016100e2565b61010b6101913660046106ef565b610335565b3480156101a257600080fd5b5061010b610390565b3480156101b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661013a565b3480156101e257600080fd5b506100d56103a4565b3480156101f757600080fd5b5060015461013a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022457600080fd5b5061010b610233366004610754565b6103b1565b34801561024457600080fd5b5061010b610253366004610670565b610440565b60038054610265906107a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610291906107a0565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b6102ee6104fc565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b34838563ffffffff167fecdc36fa3681f5d9c559dcbc399417db6f0ac0d81a78529685a1150265971d55858560405161036f92919061083c565b60405180910390a4600283905560036103898284836108d6565b5050505050565b6103986104fc565b6103a2600061057d565b565b60058054610265906107a0565b3373ffffffffffffffffffffffffffffffffffffffff167f97d8367a1f39eb9e97f262fafbb05925c0bcfe120aaad7b9737cae34f749c2068484846040516103fb939291906109f0565b60405180910390a2600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600561043a8284836108d6565b50505050565b6104486104fc565b73ffffffffffffffffffffffffffffffffffffffff81166104f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104f98161057d565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000815180845260005b81811015610618576020818501810151868301820152016105fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061066960208301846105f2565b9392505050565b60006020828403121561068257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461066957600080fd5b60008083601f8401126106b857600080fd5b50813567ffffffffffffffff8111156106d057600080fd5b6020830191508360208285010111156106e857600080fd5b9250929050565b6000806000806060858703121561070557600080fd5b843563ffffffff8116811461071957600080fd5b935060208501359250604085013567ffffffffffffffff81111561073c57600080fd5b610748878288016106a6565b95989497509550505050565b60008060006040848603121561076957600080fd5b83359250602084013567ffffffffffffffff81111561078757600080fd5b610793868287016106a6565b9497909650939450505050565b600181811c908216806107b457607f821691505b6020821081036107ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6020815260006108506020830184866107f3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156108d157600081815260208120601f850160051c810160208610156108ae5750805b601f850160051c820191505b818110156108cd578281556001016108ba565b5050505b505050565b67ffffffffffffffff8311156108ee576108ee610858565b610902836108fc83546107a0565b83610887565b6000601f841160018114610954576000851561091e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610389565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156109a35786850135825560209485019460019092019101610983565b50868210156109de577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152604060208201526000610a0a6040830184866107f3565b9594505050505056fea26469706673582212202b7e1b4a24853f1faba25a3a1a65a34351b957cc7d8abd2a2ba47ecd66f9a7b664736f6c63430008130033", - sourceMap: - "336:1157:216:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;537:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1346:145;;;;;;;;;;-1:-1:-1;1346:145:216;;;;;:::i;:::-;;:::i;:::-;;565:25;;;;;;;;;;-1:-1:-1;565:25:216;;;;;;;;;;;1212:42:282;1200:55;;;1182:74;;1170:2;1155:18;565:25:216;1036:226:282;506:25:216;;;;;;;;;;;;;;;;;;;1413::282;;;1401:2;1386:18;506:25:216;1267:177:282;865:272:216;;;;;;:::i;:::-;;:::i;1824:101:25:-;;;;;;;;;;;;;:::i;1201:85::-;;;;;;;;;;-1:-1:-1;1247:7:25;1273:6;;;1201:85;;596:29:216;;;;;;;;;;;;;:::i;443:57::-;;;;;;;;;;-1:-1:-1;443:57:216;;;;;;;;1143:197;;;;;;;;;;-1:-1:-1;1143:197:216;;;;;:::i;:::-;;:::i;2074:198:25:-;;;;;;;;;;-1:-1:-1;2074:198:25;;;;;:::i;:::-;;:::i;537:21:216:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1346:145::-;1094:13:25;:11;:13::i;:::-;1426:24:216::1;:58:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;1346:145::o;865:272::-;1049:9;1040:7;1031;1015:59;;;1067:5;;1015:59;;;;;;;:::i;:::-;;;;;;;;1084:10;:20;;;1114:8;:16;1125:5;;1114:8;:16;:::i;:::-;;865:272;;;;:::o;1824:101:25:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;596:29:216:-;;;;;;;:::i;1143:197::-;1237:10;1224:41;;;1249:6;1257:7;;1224:41;;;;;;;;:::i;:::-;;;;;;;;1275:10;:23;;;;1288:10;1275:23;;;1308:15;:25;1326:7;;1308:15;:25;:::i;:::-;;1143:197;;;:::o;2074:198:25:-;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;::::1;::::0;;8718:2:282;2154:73:25::1;::::0;::::1;8700:21:282::0;8757:2;8737:18;;;8730:30;8796:34;8776:18;;;8769:62;8867:8;8847:18;;;8840:36;8893:19;;2154:73:25::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:53;1422:23:25;1414:68;;;;;;;9125:2:282;1414:68:25;;;9107:21:282;;;9144:18;;;9137:30;9203:34;9183:18;;;9176:62;9255:18;;1414:68:25;8923:356:282;2426:187:25;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:481:282:-;55:3;93:5;87:12;120:6;115:3;108:19;145:1;155:162;169:6;166:1;163:13;155:162;;;231:4;287:13;;;283:22;;277:29;259:11;;;255:20;;248:59;184:12;155:162;;;159:3;362:1;355:4;346:6;341:3;337:16;333:27;326:38;484:4;414:66;409:2;401:6;397:15;393:88;388:3;384:98;380:109;373:116;;;14:481;;;;:::o;500:217::-;647:2;636:9;629:21;610:4;667:44;707:2;696:9;692:18;684:6;667:44;:::i;:::-;659:52;500:217;-1:-1:-1;;;500:217:282:o;722:309::-;781:6;834:2;822:9;813:7;809:23;805:32;802:52;;;850:1;847;840:12;802:52;889:9;876:23;939:42;932:5;928:54;921:5;918:65;908:93;;997:1;994;987:12;1449:347;1500:8;1510:6;1564:3;1557:4;1549:6;1545:17;1541:27;1531:55;;1582:1;1579;1572:12;1531:55;-1:-1:-1;1605:20:282;;1648:18;1637:30;;1634:50;;;1680:1;1677;1670:12;1634:50;1717:4;1709:6;1705:17;1693:29;;1769:3;1762:4;1753:6;1745;1741:19;1737:30;1734:39;1731:59;;;1786:1;1783;1776:12;1731:59;1449:347;;;;;:::o;1801:641::-;1888:6;1896;1904;1912;1965:2;1953:9;1944:7;1940:23;1936:32;1933:52;;;1981:1;1978;1971:12;1933:52;2020:9;2007:23;2070:10;2063:5;2059:22;2052:5;2049:33;2039:61;;2096:1;2093;2086:12;2039:61;2119:5;-1:-1:-1;2171:2:282;2156:18;;2143:32;;-1:-1:-1;2226:2:282;2211:18;;2198:32;2253:18;2242:30;;2239:50;;;2285:1;2282;2275:12;2239:50;2324:58;2374:7;2365:6;2354:9;2350:22;2324:58;:::i;:::-;1801:641;;;;-1:-1:-1;2401:8:282;-1:-1:-1;;;;1801:641:282:o;2937:478::-;3017:6;3025;3033;3086:2;3074:9;3065:7;3061:23;3057:32;3054:52;;;3102:1;3099;3092:12;3054:52;3138:9;3125:23;3115:33;;3199:2;3188:9;3184:18;3171:32;3226:18;3218:6;3215:30;3212:50;;;3258:1;3255;3248:12;3212:50;3297:58;3347:7;3338:6;3327:9;3323:22;3297:58;:::i;:::-;2937:478;;3374:8;;-1:-1:-1;3271:84:282;;-1:-1:-1;;;;2937:478:282:o;3420:437::-;3499:1;3495:12;;;;3542;;;3563:61;;3617:4;3609:6;3605:17;3595:27;;3563:61;3670:2;3662:6;3659:14;3639:18;3636:38;3633:218;;3707:77;3704:1;3697:88;3808:4;3805:1;3798:15;3836:4;3833:1;3826:15;3633:218;;3420:437;;;:::o;3862:326::-;3951:6;3946:3;3939:19;4003:6;3996:5;3989:4;3984:3;3980:14;3967:43;;4055:1;4048:4;4039:6;4034:3;4030:16;4026:27;4019:38;3921:3;4177:4;4107:66;4102:2;4094:6;4090:15;4086:88;4081:3;4077:98;4073:109;4066:116;;3862:326;;;;:::o;4193:247::-;4352:2;4341:9;4334:21;4315:4;4372:62;4430:2;4419:9;4415:18;4407:6;4399;4372:62;:::i;:::-;4364:70;4193:247;-1:-1:-1;;;;4193:247:282:o;4445:184::-;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4759:544;4860:2;4855:3;4852:11;4849:448;;;4896:1;4921:5;4917:2;4910:17;4966:4;4962:2;4952:19;5036:2;5024:10;5020:19;5017:1;5013:27;5007:4;5003:38;5072:4;5060:10;5057:20;5054:47;;;-1:-1:-1;5095:4:282;5054:47;5150:2;5145:3;5141:12;5138:1;5134:20;5128:4;5124:31;5114:41;;5205:82;5223:2;5216:5;5213:13;5205:82;;;5268:17;;;5249:1;5238:13;5205:82;;;5209:3;;;4849:448;4759:544;;;:::o;5539:1321::-;5661:18;5656:3;5653:27;5650:53;;;5683:18;;:::i;:::-;5712:93;5801:3;5761:38;5793:4;5787:11;5761:38;:::i;:::-;5755:4;5712:93;:::i;:::-;5831:1;5856:2;5851:3;5848:11;5873:1;5868:734;;;;6646:1;6663:3;6660:93;;;-1:-1:-1;6719:19:282;;;6706:33;6660:93;5445:66;5436:1;5432:11;;;5428:84;5424:89;5414:100;5520:1;5516:11;;;5411:117;6766:78;;5841:1013;;5868:734;4706:1;4699:14;;;4743:4;4730:18;;5913:66;5904:76;;;6063:9;6085:229;6099:7;6096:1;6093:14;6085:229;;;6188:19;;;6175:33;6160:49;;6295:4;6280:20;;;;6248:1;6236:14;;;;6115:12;6085:229;;;6089:3;6342;6333:7;6330:16;6327:219;;;6462:66;6456:3;6450;6447:1;6443:11;6439:21;6435:94;6431:99;6418:9;6413:3;6409:19;6396:33;6392:139;6384:6;6377:155;6327:219;;;6589:1;6583:3;6580:1;6576:11;6572:19;6566:4;6559:33;5841:1013;;5539:1321;;;:::o;6865:318::-;7052:6;7041:9;7034:25;7095:2;7090;7079:9;7075:18;7068:30;7015:4;7115:62;7173:2;7162:9;7158:18;7150:6;7142;7115:62;:::i;:::-;7107:70;6865:318;-1:-1:-1;;;;;6865:318:282:o", - linkReferences: {}, - }, - methodIdentifiers: { - "fooBar(uint256,string)": "f07c1f47", - "handle(uint32,bytes32,bytes)": "56d5d475", - "interchainSecurityModule()": "de523cf3", - "lastCallMessage()": "a4982fde", - "lastCaller()": "2113522a", - "lastData()": "006e75ec", - "lastSender()": "256fec88", - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "setInterchainSecurityModule(address)": "0e72cc06", - "transferOwnership(address)": "f2fde38b", - }, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"ReceivedCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"origin","type":"uint32"},{"indexed":true,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"ReceivedMessage","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"message","type":"string"}],"name":"fooBar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_origin","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"handle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"interchainSecurityModule","outputs":[{"internalType":"contract IInterchainSecurityModule","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastCallMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastCaller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSender","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ism","type":"address"}],"name":"setInterchainSecurityModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"contracts/test/TestRecipient.sol":"TestRecipient"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"../node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","license":"MIT","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"]},"../node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","license":"MIT","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"]},"contracts/interfaces/IInterchainSecurityModule.sol":{"keccak256":"0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce","license":"MIT OR Apache-2.0","urls":["bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2","dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p"]},"contracts/interfaces/IMessageRecipient.sol":{"keccak256":"0x145e8332a91295a710deb3cb1ab689144262ef6ec66d9570c600b778e9dd964d","license":"MIT OR Apache-2.0","urls":["bzz-raw://a22ad97b1d8d3a37e8b4ad1519b893ac7cdf718c3a340999ffef4fb04060f119","dweb:/ipfs/QmXp3w8yPm1vHyNrrSLr4YtRMP44eLadHnXSAjSecqB7H6"]},"contracts/test/TestRecipient.sol":{"keccak256":"0x68dcf1b2c3c9e19370e525136e461e2a0af37d11d7466245504b42a3cf07a6ce","license":"MIT OR Apache-2.0","urls":["bzz-raw://1d12b44b52f5760f7c21470966996ae9a5aa0744d5c096bc1c870cc84a0fe248","dweb:/ipfs/QmSxKybnyvsYLZnFz5xVNrzFJa1wSQMjQeg1sfNo2nhymD"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { - internalType: "address", - name: "previousOwner", - type: "address", - indexed: true, - }, - { - internalType: "address", - name: "newOwner", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "OwnershipTransferred", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "caller", - type: "address", - indexed: true, - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - indexed: false, - }, - { - internalType: "string", - name: "message", - type: "string", - indexed: false, - }, - ], - type: "event", - name: "ReceivedCall", - anonymous: false, - }, - { - inputs: [ - { - internalType: "uint32", - name: "origin", - type: "uint32", - indexed: true, - }, - { - internalType: "bytes32", - name: "sender", - type: "bytes32", - indexed: true, - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - indexed: true, - }, - { - internalType: "string", - name: "message", - type: "string", - indexed: false, - }, - ], - type: "event", - name: "ReceivedMessage", - anonymous: false, - }, - { - inputs: [ - { internalType: "uint256", name: "amount", type: "uint256" }, - { internalType: "string", name: "message", type: "string" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "fooBar", - }, - { - inputs: [ - { internalType: "uint32", name: "_origin", type: "uint32" }, - { internalType: "bytes32", name: "_sender", type: "bytes32" }, - { internalType: "bytes", name: "_data", type: "bytes" }, - ], - stateMutability: "payable", - type: "function", - name: "handle", - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "interchainSecurityModule", - outputs: [ - { - internalType: "contract IInterchainSecurityModule", - name: "", - type: "address", - }, - ], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "lastCallMessage", - outputs: [{ internalType: "string", name: "", type: "string" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "lastCaller", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "lastData", - outputs: [{ internalType: "bytes", name: "", type: "bytes" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "lastSender", - outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], - }, - { - inputs: [], - stateMutability: "view", - type: "function", - name: "owner", - outputs: [{ internalType: "address", name: "", type: "address" }], - }, - { - inputs: [], - stateMutability: "nonpayable", - type: "function", - name: "renounceOwnership", - }, - { - inputs: [{ internalType: "address", name: "_ism", type: "address" }], - stateMutability: "nonpayable", - type: "function", - name: "setInterchainSecurityModule", - }, - { - inputs: [ - { internalType: "address", name: "newOwner", type: "address" }, - ], - stateMutability: "nonpayable", - type: "function", - name: "transferOwnership", - }, - ], - devdoc: { - kind: "dev", - methods: { - "owner()": { details: "Returns the address of the current owner." }, - "renounceOwnership()": { - details: - "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.", - }, - "transferOwnership(address)": { - details: - "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.", - }, - }, - version: 1, - }, - userdoc: { kind: "user", methods: {}, version: 1 }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { - "contracts/test/TestRecipient.sol": "TestRecipient", - }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "../node_modules/@openzeppelin/contracts/access/Ownable.sol": { - keccak256: - "0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218", - urls: [ - "bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32", - "dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz", - ], - license: "MIT", - }, - "../node_modules/@openzeppelin/contracts/utils/Context.sol": { - keccak256: - "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - urls: [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3", - ], - license: "MIT", - }, - "contracts/interfaces/IInterchainSecurityModule.sol": { - keccak256: - "0xd144a00a15eef18012f8dae28ca1a7d965012f88ff4a07382a172ae6e02811ce", - urls: [ - "bzz-raw://045da4f74529b4c0252743fe3f84e96d7e6e41cf30632011eefbb5b33eaa4cb2", - "dweb:/ipfs/QmefWSKyXSndAGC38tszRfdXbo4kvSsgcq7oTZz9rQ9n2p", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/interfaces/IMessageRecipient.sol": { - keccak256: - "0x145e8332a91295a710deb3cb1ab689144262ef6ec66d9570c600b778e9dd964d", - urls: [ - "bzz-raw://a22ad97b1d8d3a37e8b4ad1519b893ac7cdf718c3a340999ffef4fb04060f119", - "dweb:/ipfs/QmXp3w8yPm1vHyNrrSLr4YtRMP44eLadHnXSAjSecqB7H6", - ], - license: "MIT OR Apache-2.0", - }, - "contracts/test/TestRecipient.sol": { - keccak256: - "0x68dcf1b2c3c9e19370e525136e461e2a0af37d11d7466245504b42a3cf07a6ce", - urls: [ - "bzz-raw://1d12b44b52f5760f7c21470966996ae9a5aa0744d5c096bc1c870cc84a0fe248", - "dweb:/ipfs/QmSxKybnyvsYLZnFz5xVNrzFJa1wSQMjQeg1sfNo2nhymD", - ], - license: "MIT OR Apache-2.0", - }, - }, - version: 1, - }, - ast: { - absolutePath: "contracts/test/TestRecipient.sol", - id: 30167, - exportedSymbols: { - IInterchainSecurityModule: [20729], - IMessageRecipient: [20951], - ISpecifiesInterchainSecurityModule: [20736], - Ownable: [2723], - TestRecipient: [30166], - }, - nodeType: "SourceUnit", - src: "46:1448:216", - nodes: [ - { - id: 30055, - nodeType: "PragmaDirective", - src: "46:24:216", - nodes: [], - literals: ["solidity", ">=", "0.8", ".0"], - }, - { - id: 30057, - nodeType: "ImportDirective", - src: "72:67:216", - nodes: [], - absolutePath: - "../node_modules/@openzeppelin/contracts/access/Ownable.sol", - file: "@openzeppelin/contracts/access/Ownable.sol", - nameLocation: "-1:-1:-1", - scope: 30167, - sourceUnit: 2724, - symbolAliases: [ - { - foreign: { - id: 30056, - name: "Ownable", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 2723, - src: "80:7:216", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 30059, - nodeType: "ImportDirective", - src: "141:70:216", - nodes: [], - absolutePath: "contracts/interfaces/IMessageRecipient.sol", - file: "../interfaces/IMessageRecipient.sol", - nameLocation: "-1:-1:-1", - scope: 30167, - sourceUnit: 20952, - symbolAliases: [ - { - foreign: { - id: 30058, - name: "IMessageRecipient", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 20951, - src: "149:17:216", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 30062, - nodeType: "ImportDirective", - src: "212:122:216", - nodes: [], - absolutePath: "contracts/interfaces/IInterchainSecurityModule.sol", - file: "../interfaces/IInterchainSecurityModule.sol", - nameLocation: "-1:-1:-1", - scope: 30167, - sourceUnit: 20737, - symbolAliases: [ - { - foreign: { - id: 30060, - name: "IInterchainSecurityModule", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 20729, - src: "220:25:216", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - { - foreign: { - id: 30061, - name: "ISpecifiesInterchainSecurityModule", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 20736, - src: "247:34:216", - typeDescriptions: {}, - }, - nameLocation: "-1:-1:-1", - }, - ], - unitAlias: "", - }, - { - id: 30166, - nodeType: "ContractDefinition", - src: "336:1157:216", - nodes: [ - { - id: 30071, - nodeType: "VariableDeclaration", - src: "443:57:216", - nodes: [], - baseFunctions: [20735], - constant: false, - functionSelector: "de523cf3", - mutability: "mutable", - name: "interchainSecurityModule", - nameLocation: "476:24:216", - scope: 30166, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_contract$_IInterchainSecurityModule_$20729", - typeString: "contract IInterchainSecurityModule", - }, - typeName: { - id: 30070, - nodeType: "UserDefinedTypeName", - pathNode: { - id: 30069, - name: "IInterchainSecurityModule", - nameLocations: ["443:25:216"], - nodeType: "IdentifierPath", - referencedDeclaration: 20729, - src: "443:25:216", - }, - referencedDeclaration: 20729, - src: "443:25:216", - typeDescriptions: { - typeIdentifier: "t_contract$_IInterchainSecurityModule_$20729", - typeString: "contract IInterchainSecurityModule", - }, - }, - visibility: "public", - }, - { - id: 30073, - nodeType: "VariableDeclaration", - src: "506:25:216", - nodes: [], - constant: false, - functionSelector: "256fec88", - mutability: "mutable", - name: "lastSender", - nameLocation: "521:10:216", - scope: 30166, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - typeName: { - id: 30072, - name: "bytes32", - nodeType: "ElementaryTypeName", - src: "506:7:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - visibility: "public", - }, - { - id: 30075, - nodeType: "VariableDeclaration", - src: "537:21:216", - nodes: [], - constant: false, - functionSelector: "006e75ec", - mutability: "mutable", - name: "lastData", - nameLocation: "550:8:216", - scope: 30166, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes_storage", - typeString: "bytes", - }, - typeName: { - id: 30074, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "537:5:216", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "public", - }, - { - id: 30077, - nodeType: "VariableDeclaration", - src: "565:25:216", - nodes: [], - constant: false, - functionSelector: "2113522a", - mutability: "mutable", - name: "lastCaller", - nameLocation: "580:10:216", - scope: 30166, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30076, - name: "address", - nodeType: "ElementaryTypeName", - src: "565:7:216", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "public", - }, - { - id: 30079, - nodeType: "VariableDeclaration", - src: "596:29:216", - nodes: [], - constant: false, - functionSelector: "a4982fde", - mutability: "mutable", - name: "lastCallMessage", - nameLocation: "610:15:216", - scope: 30166, - stateVariable: true, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_string_storage", - typeString: "string", - }, - typeName: { - id: 30078, - name: "string", - nodeType: "ElementaryTypeName", - src: "596:6:216", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "public", - }, - { - id: 30089, - nodeType: "EventDefinition", - src: "632:146:216", - nodes: [], - anonymous: false, - eventSelector: - "ecdc36fa3681f5d9c559dcbc399417db6f0ac0d81a78529685a1150265971d55", - name: "ReceivedMessage", - nameLocation: "638:15:216", - parameters: { - id: 30088, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30081, - indexed: true, - mutability: "mutable", - name: "origin", - nameLocation: "678:6:216", - nodeType: "VariableDeclaration", - scope: 30089, - src: "663:21:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - typeName: { - id: 30080, - name: "uint32", - nodeType: "ElementaryTypeName", - src: "663:6:216", - typeDescriptions: { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30083, - indexed: true, - mutability: "mutable", - name: "sender", - nameLocation: "710:6:216", - nodeType: "VariableDeclaration", - scope: 30089, - src: "694:22:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - typeName: { - id: 30082, - name: "bytes32", - nodeType: "ElementaryTypeName", - src: "694:7:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30085, - indexed: true, - mutability: "mutable", - name: "value", - nameLocation: "742:5:216", - nodeType: "VariableDeclaration", - scope: 30089, - src: "726:21:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30084, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "726:7:216", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30087, - indexed: false, - mutability: "mutable", - name: "message", - nameLocation: "764:7:216", - nodeType: "VariableDeclaration", - scope: 30089, - src: "757:14:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string", - }, - typeName: { - id: 30086, - name: "string", - nodeType: "ElementaryTypeName", - src: "757:6:216", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "internal", - }, - ], - src: "653:124:216", - }, - }, - { - id: 30097, - nodeType: "EventDefinition", - src: "784:75:216", - nodes: [], - anonymous: false, - eventSelector: - "97d8367a1f39eb9e97f262fafbb05925c0bcfe120aaad7b9737cae34f749c206", - name: "ReceivedCall", - nameLocation: "790:12:216", - parameters: { - id: 30096, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30091, - indexed: true, - mutability: "mutable", - name: "caller", - nameLocation: "819:6:216", - nodeType: "VariableDeclaration", - scope: 30097, - src: "803:22:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30090, - name: "address", - nodeType: "ElementaryTypeName", - src: "803:7:216", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30093, - indexed: false, - mutability: "mutable", - name: "amount", - nameLocation: "835:6:216", - nodeType: "VariableDeclaration", - scope: 30097, - src: "827:14:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30092, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "827:7:216", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30095, - indexed: false, - mutability: "mutable", - name: "message", - nameLocation: "850:7:216", - nodeType: "VariableDeclaration", - scope: 30097, - src: "843:14:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_string_memory_ptr", - typeString: "string", - }, - typeName: { - id: 30094, - name: "string", - nodeType: "ElementaryTypeName", - src: "843:6:216", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "internal", - }, - ], - src: "802:56:216", - }, - }, - { - id: 30127, - nodeType: "FunctionDefinition", - src: "865:272:216", - nodes: [], - body: { - id: 30126, - nodeType: "Block", - src: "1000:137:216", - nodes: [], - statements: [ - { - eventCall: { - arguments: [ - { - id: 30108, - name: "_origin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30099, - src: "1031:7:216", - typeDescriptions: { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - }, - { - id: 30109, - name: "_sender", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30101, - src: "1040:7:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - { - expression: { - id: 30110, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "1049:3:216", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 30111, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1053:5:216", - memberName: "value", - nodeType: "MemberAccess", - src: "1049:9:216", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - { - arguments: [ - { - id: 30114, - name: "_data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30103, - src: "1067:5:216", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - ], - id: 30113, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "1060:6:216", - typeDescriptions: { - typeIdentifier: "t_type$_t_string_storage_ptr_$", - typeString: "type(string storage pointer)", - }, - typeName: { - id: 30112, - name: "string", - nodeType: "ElementaryTypeName", - src: "1060:6:216", - typeDescriptions: {}, - }, - }, - id: 30115, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1060:13:216", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string calldata", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string calldata", - }, - ], - id: 30107, - name: "ReceivedMessage", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30089, - src: "1015:15:216", - typeDescriptions: { - typeIdentifier: - "t_function_event_nonpayable$_t_uint32_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - typeString: - "function (uint32,bytes32,uint256,string memory)", - }, - }, - id: 30116, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1015:59:216", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30117, - nodeType: "EmitStatement", - src: "1010:64:216", - }, - { - expression: { - id: 30120, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30118, - name: "lastSender", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30073, - src: "1084:10:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - id: 30119, - name: "_sender", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30101, - src: "1097:7:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - src: "1084:20:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - id: 30121, - nodeType: "ExpressionStatement", - src: "1084:20:216", - }, - { - expression: { - id: 30124, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30122, - name: "lastData", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30075, - src: "1114:8:216", - typeDescriptions: { - typeIdentifier: "t_bytes_storage", - typeString: "bytes storage ref", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - id: 30123, - name: "_data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30103, - src: "1125:5:216", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - src: "1114:16:216", - typeDescriptions: { - typeIdentifier: "t_bytes_storage", - typeString: "bytes storage ref", - }, - }, - id: 30125, - nodeType: "ExpressionStatement", - src: "1114:16:216", - }, - ], - }, - baseFunctions: [20950], - functionSelector: "56d5d475", - implemented: true, - kind: "function", - modifiers: [], - name: "handle", - nameLocation: "874:6:216", - overrides: { - id: 30105, - nodeType: "OverrideSpecifier", - overrides: [], - src: "991:8:216", - }, - parameters: { - id: 30104, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30099, - mutability: "mutable", - name: "_origin", - nameLocation: "897:7:216", - nodeType: "VariableDeclaration", - scope: 30127, - src: "890:14:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - typeName: { - id: 30098, - name: "uint32", - nodeType: "ElementaryTypeName", - src: "890:6:216", - typeDescriptions: { - typeIdentifier: "t_uint32", - typeString: "uint32", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30101, - mutability: "mutable", - name: "_sender", - nameLocation: "922:7:216", - nodeType: "VariableDeclaration", - scope: 30127, - src: "914:15:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - typeName: { - id: 30100, - name: "bytes32", - nodeType: "ElementaryTypeName", - src: "914:7:216", - typeDescriptions: { - typeIdentifier: "t_bytes32", - typeString: "bytes32", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30103, - mutability: "mutable", - name: "_data", - nameLocation: "954:5:216", - nodeType: "VariableDeclaration", - scope: 30127, - src: "939:20:216", - stateVariable: false, - storageLocation: "calldata", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes", - }, - typeName: { - id: 30102, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "939:5:216", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "880:85:216", - }, - returnParameters: { - id: 30106, - nodeType: "ParameterList", - parameters: [], - src: "1000:0:216", - }, - scope: 30166, - stateMutability: "payable", - virtual: true, - visibility: "external", - }, - { - id: 30151, - nodeType: "FunctionDefinition", - src: "1143:197:216", - nodes: [], - body: { - id: 30150, - nodeType: "Block", - src: "1209:131:216", - nodes: [], - statements: [ - { - eventCall: { - arguments: [ - { - expression: { - id: 30135, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "1237:3:216", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 30136, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1241:6:216", - memberName: "sender", - nodeType: "MemberAccess", - src: "1237:10:216", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 30137, - name: "amount", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30129, - src: "1249:6:216", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - { - id: 30138, - name: "message", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30131, - src: "1257:7:216", - typeDescriptions: { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string calldata", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string calldata", - }, - ], - id: 30134, - name: "ReceivedCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30097, - src: "1224:12:216", - typeDescriptions: { - typeIdentifier: - "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - typeString: "function (address,uint256,string memory)", - }, - }, - id: 30139, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1224:41:216", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 30140, - nodeType: "EmitStatement", - src: "1219:46:216", - }, - { - expression: { - id: 30144, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30141, - name: "lastCaller", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30077, - src: "1275:10:216", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - expression: { - id: 30142, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "1288:3:216", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 30143, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "1292:6:216", - memberName: "sender", - nodeType: "MemberAccess", - src: "1288:10:216", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - src: "1275:23:216", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - id: 30145, - nodeType: "ExpressionStatement", - src: "1275:23:216", - }, - { - expression: { - id: 30148, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30146, - name: "lastCallMessage", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30079, - src: "1308:15:216", - typeDescriptions: { - typeIdentifier: "t_string_storage", - typeString: "string storage ref", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - id: 30147, - name: "message", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30131, - src: "1326:7:216", - typeDescriptions: { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string calldata", - }, - }, - src: "1308:25:216", - typeDescriptions: { - typeIdentifier: "t_string_storage", - typeString: "string storage ref", - }, - }, - id: 30149, - nodeType: "ExpressionStatement", - src: "1308:25:216", - }, - ], - }, - functionSelector: "f07c1f47", - implemented: true, - kind: "function", - modifiers: [], - name: "fooBar", - nameLocation: "1152:6:216", - parameters: { - id: 30132, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30129, - mutability: "mutable", - name: "amount", - nameLocation: "1167:6:216", - nodeType: "VariableDeclaration", - scope: 30151, - src: "1159:14:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - typeName: { - id: 30128, - name: "uint256", - nodeType: "ElementaryTypeName", - src: "1159:7:216", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 30131, - mutability: "mutable", - name: "message", - nameLocation: "1191:7:216", - nodeType: "VariableDeclaration", - scope: 30151, - src: "1175:23:216", - stateVariable: false, - storageLocation: "calldata", - typeDescriptions: { - typeIdentifier: "t_string_calldata_ptr", - typeString: "string", - }, - typeName: { - id: 30130, - name: "string", - nodeType: "ElementaryTypeName", - src: "1175:6:216", - typeDescriptions: { - typeIdentifier: "t_string_storage_ptr", - typeString: "string", - }, - }, - visibility: "internal", - }, - ], - src: "1158:41:216", - }, - returnParameters: { - id: 30133, - nodeType: "ParameterList", - parameters: [], - src: "1209:0:216", - }, - scope: 30166, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 30165, - nodeType: "FunctionDefinition", - src: "1346:145:216", - nodes: [], - body: { - id: 30164, - nodeType: "Block", - src: "1416:75:216", - nodes: [], - statements: [ - { - expression: { - id: 30162, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 30158, - name: "interchainSecurityModule", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30071, - src: "1426:24:216", - typeDescriptions: { - typeIdentifier: - "t_contract$_IInterchainSecurityModule_$20729", - typeString: "contract IInterchainSecurityModule", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [ - { - id: 30160, - name: "_ism", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 30153, - src: "1479:4:216", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_address", - typeString: "address", - }, - ], - id: 30159, - name: "IInterchainSecurityModule", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 20729, - src: "1453:25:216", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_IInterchainSecurityModule_$20729_$", - typeString: - "type(contract IInterchainSecurityModule)", - }, - }, - id: 30161, - isConstant: false, - isLValue: false, - isPure: false, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "1453:31:216", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_contract$_IInterchainSecurityModule_$20729", - typeString: "contract IInterchainSecurityModule", - }, - }, - src: "1426:58:216", - typeDescriptions: { - typeIdentifier: - "t_contract$_IInterchainSecurityModule_$20729", - typeString: "contract IInterchainSecurityModule", - }, - }, - id: 30163, - nodeType: "ExpressionStatement", - src: "1426:58:216", - }, - ], - }, - functionSelector: "0e72cc06", - implemented: true, - kind: "function", - modifiers: [ - { - id: 30156, - kind: "modifierInvocation", - modifierName: { - id: 30155, - name: "onlyOwner", - nameLocations: ["1406:9:216"], - nodeType: "IdentifierPath", - referencedDeclaration: 2642, - src: "1406:9:216", - }, - nodeType: "ModifierInvocation", - src: "1406:9:216", - }, - ], - name: "setInterchainSecurityModule", - nameLocation: "1355:27:216", - parameters: { - id: 30154, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 30153, - mutability: "mutable", - name: "_ism", - nameLocation: "1391:4:216", - nodeType: "VariableDeclaration", - scope: 30165, - src: "1383:12:216", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 30152, - name: "address", - nodeType: "ElementaryTypeName", - src: "1383:7:216", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "1382:14:216", - }, - returnParameters: { - id: 30157, - nodeType: "ParameterList", - parameters: [], - src: "1416:0:216", - }, - scope: 30166, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 30063, - name: "Ownable", - nameLocations: ["366:7:216"], - nodeType: "IdentifierPath", - referencedDeclaration: 2723, - src: "366:7:216", - }, - id: 30064, - nodeType: "InheritanceSpecifier", - src: "366:7:216", - }, - { - baseName: { - id: 30065, - name: "IMessageRecipient", - nameLocations: ["379:17:216"], - nodeType: "IdentifierPath", - referencedDeclaration: 20951, - src: "379:17:216", - }, - id: 30066, - nodeType: "InheritanceSpecifier", - src: "379:17:216", - }, - { - baseName: { - id: 30067, - name: "ISpecifiesInterchainSecurityModule", - nameLocations: ["402:34:216"], - nodeType: "IdentifierPath", - referencedDeclaration: 20736, - src: "402:34:216", - }, - id: 30068, - nodeType: "InheritanceSpecifier", - src: "402:34:216", - }, - ], - canonicalName: "TestRecipient", - contractDependencies: [], - contractKind: "contract", - fullyImplemented: true, - linearizedBaseContracts: [30166, 20736, 20951, 2723, 80709], - name: "TestRecipient", - nameLocation: "345:13:216", - scope: 30167, - usedErrors: [], - }, - ], - license: "MIT OR Apache-2.0", - }, - id: 216, -} as const; diff --git a/example/abi/TransparentUpgradeableProxy.ts b/example/abi/TransparentUpgradeableProxy.ts deleted file mode 100644 index 7b11bcaf..00000000 --- a/example/abi/TransparentUpgradeableProxy.ts +++ /dev/null @@ -1,4261 +0,0 @@ -export const TransparentUpgradeableProxy = { - abi: [ - { - type: "constructor", - inputs: [ - { name: "_logic", type: "address", internalType: "address" }, - { name: "admin_", type: "address", internalType: "address" }, - { name: "_data", type: "bytes", internalType: "bytes" }, - ], - stateMutability: "payable", - }, - { type: "fallback", stateMutability: "payable" }, - { type: "receive", stateMutability: "payable" }, - { - type: "event", - name: "AdminChanged", - inputs: [ - { - name: "previousAdmin", - type: "address", - indexed: false, - internalType: "address", - }, - { - name: "newAdmin", - type: "address", - indexed: false, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "BeaconUpgraded", - inputs: [ - { - name: "beacon", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - { - type: "event", - name: "Upgraded", - inputs: [ - { - name: "implementation", - type: "address", - indexed: true, - internalType: "address", - }, - ], - anonymous: false, - }, - ], - bytecode: { - object: - "0x6080604052604051620010f0380380620010f0833981016040819052620000269162000424565b828162000036828260006200004d565b50620000449050826200007f565b50505062000557565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c1600080516020620010a9833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b8383604051806060016040528060278152602001620010c96027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020620010a98339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b6060600080856001600160a01b031685604051620002b6919062000504565b600060405180830381855af49150503d8060008114620002f3576040519150601f19603f3d011682016040523d82523d6000602084013e620002f8565b606091505b5090925090506200030c8683838762000316565b9695505050505050565b606083156200038a57825160000362000382576001600160a01b0385163b620003825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c4565b508162000396565b6200039683836200039e565b949350505050565b815115620003af5781518083602001fd5b8060405162461bcd60e51b8152600401620001c4919062000522565b80516001600160a01b0381168114620003e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200041b57818101518382015260200162000401565b50506000910152565b6000806000606084860312156200043a57600080fd5b6200044584620003cb565b92506200045560208501620003cb565b60408501519092506001600160401b03808211156200047357600080fd5b818601915086601f8301126200048857600080fd5b8151818111156200049d576200049d620003e8565b604051601f8201601f19908116603f01168101908382118183101715620004c857620004c8620003e8565b81604052828152896020848701011115620004e257600080fd5b620004f5836020830160208801620003fe565b80955050505050509250925092565b6000825162000518818460208701620003fe565b9190910192915050565b602081526000825180602084015262000543816040850160208701620003fe565b601f01601f19169190910160400192915050565b610b4280620005676000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e72cf2a10789836a3b3e825e8e631541b2b96bc1cff5fab44fdc66be6baaac8864736f6c63430008130033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - sourceMap: - "3389:4951:95:-:0;;;3663:137;;;;;;;;;;;;;;;;;;:::i;:::-;3748:6;3756:5;1024:39:91;3748:6:95;3756:5;1057::91;1024:17;:39::i;:::-;-1:-1:-1;3773:20:95::1;::::0;-1:-1:-1;3786:6:95;3773:12:::1;:20::i;:::-;3663:137:::0;;;3389:4951;;2057:265:92;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2204:112;2057:265;;;:::o;4300:135::-;4364:35;4377:11;-1:-1:-1;;;;;;;;;;;3854:45:92;-1:-1:-1;;;;;3854:45:92;;3784:122;4377:11;4364:35;;;-1:-1:-1;;;;;1884:15:282;;;1866:34;;1936:15;;;1931:2;1916:18;;1909:43;1801:18;4364:35:92;;;;;;;4409:19;4419:8;4409:9;:19::i;:::-;4300:135;:::o;1771:152::-;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:92;;;;;;;;1771:152;:::o;6674:198:105:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:105:o;3988:201:92:-;-1:-1:-1;;;;;4051:22:92;;4043:73;;;;-1:-1:-1;;;4043:73:92;;2165:2:282;4043:73:92;;;2147:21:282;2204:2;2184:18;;;2177:30;2243:34;2223:18;;;2216:62;-1:-1:-1;;;2294:18:282;;;2287:36;2340:19;;4043:73:92;;;;;;;;;4174:8;-1:-1:-1;;;;;;;;;;;4126:39:92;:56;;-1:-1:-1;;;;;;4126:56:92;-1:-1:-1;;;;;4126:56:92;;;;;;;;;;-1:-1:-1;3988:201:92:o;1406:259::-;-1:-1:-1;;;;;1702:19:105;;;1479:95:92;;;;-1:-1:-1;;;1479:95:92;;2572:2:282;1479:95:92;;;2554:21:282;2611:2;2591:18;;;2584:30;2650:34;2630:18;;;2623:62;-1:-1:-1;;;2701:18:282;;;2694:43;2754:19;;1479:95:92;2370:409:282;1479:95:92;1641:17;1030:66;1584:48;1859:190:107;7058:325:105;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:105;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7223:67:105;;-1:-1:-1;7223:67:105;-1:-1:-1;7307:69:105;7334:6;7223:67;;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:105:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:105;;;8113:60;;;;-1:-1:-1;;;8113:60:105;;3278:2:282;8113:60:105;;;3260:21:282;3317:2;3297:18;;;3290:30;3356:31;3336:18;;;3329:59;3405:18;;8113:60:105;3076:353:282;8113:60:105;-1:-1:-1;8208:10:105;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:105;;;;;;;;:::i;14:177:282:-;93:13;;-1:-1:-1;;;;;135:31:282;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:282;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:282;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:282;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;2784:287::-;2913:3;2951:6;2945:13;2967:66;3026:6;3021:3;3014:4;3006:6;3002:17;2967:66;:::i;:::-;3049:16;;;;;2784:287;-1:-1:-1;;2784:287:282:o;3434:396::-;3583:2;3572:9;3565:21;3546:4;3615:6;3609:13;3658:6;3653:2;3642:9;3638:18;3631:34;3674:79;3746:6;3741:2;3730:9;3726:18;3721:2;3713:6;3709:15;3674:79;:::i;:::-;3814:2;3793:15;-1:-1:-1;;3789:29:282;3774:45;;;;3821:2;3770:54;;3434:396;-1:-1:-1;;3434:396:282:o;:::-;3389:4951:95;;;;;;", - linkReferences: {}, - }, - deployedBytecode: { - object: - "0x60806040523661001357610011610017565b005b6100115b61001f6102a1565b73ffffffffffffffffffffffffffffffffffffffff1633036102975760607fffffffff00000000000000000000000000000000000000000000000000000000600035167fc9a6301a000000000000000000000000000000000000000000000000000000008101610098576100916102e1565b915061028f565b7fb0e10d7a000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016100e957610091610338565b7f70d7c690000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161013a5761009161037e565b7f07ae5bc0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160161018b576100916103af565b7fa39f25e5000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016101dc576100916103fc565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b815160208301f35b61029f610410565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b60606102eb610420565b60006102fa36600481846108d7565b810190610307919061092a565b90506103248160405180602001604052806000815250600061042b565b505060408051602081019091526000815290565b606060008061034a36600481846108d7565b8101906103579190610974565b915091506103678282600161042b565b604051806020016040528060008152509250505090565b6060610388610420565b600061039736600481846108d7565b8101906103a4919061092a565b905061032481610457565b60606103b9610420565b60006103c36102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201529192500160405160208183030381529060405291505090565b6060610406610420565b60006103c36104bb565b61029f61041b6104bb565b6104ca565b341561029f57600080fd5b610434836104ee565b6000825111806104415750805b1561045257610450838361053b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104806102a1565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16104b881610567565b50565b60006104c5610673565b905090565b3660008037600080366000845af43d6000803e8080156104e9573d6000f35b3d6000fd5b6104f78161069b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105608383604051806060016040528060278152602001610ae660279139610766565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661060a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610286565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102c5565b73ffffffffffffffffffffffffffffffffffffffff81163b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610286565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61062d565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516107909190610a78565b600060405180830381855af49150503d80600081146107cb576040519150601f19603f3d011682016040523d82523d6000602084013e6107d0565b606091505b50915091506107e1868383876107eb565b9695505050505050565b6060831561088157825160000361087a5773ffffffffffffffffffffffffffffffffffffffff85163b61087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610286565b508161088b565b61088b8383610893565b949350505050565b8151156108a35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869190610a94565b600080858511156108e757600080fd5b838611156108f457600080fd5b5050820193919092039150565b803573ffffffffffffffffffffffffffffffffffffffff8116811461092557600080fd5b919050565b60006020828403121561093c57600080fd5b61056082610901565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561098757600080fd5b61099083610901565b9150602083013567ffffffffffffffff808211156109ad57600080fd5b818501915085601f8301126109c157600080fd5b8135818111156109d3576109d3610945565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a1957610a19610945565b81604052828152886020848701011115610a3257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610a6f578181015183820152602001610a57565b50506000910152565b60008251610a8a818460208701610a54565b9190910192915050565b6020815260008251806020840152610ab3816040850160208701610a54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e72cf2a10789836a3b3e825e8e631541b2b96bc1cff5fab44fdc66be6baaac8864736f6c63430008130033", - sourceMap: - "3389:4951:95:-:0;;;;;;2898:11:93;:9;:11::i;:::-;3389:4951:95;;2675:11:93;4407:1102:95;4482:11;:9;:11::i;:::-;4468:25;;:10;:25;4464:1039;;4509:16;4557:7;4539:15;4557:7;;4582:59;;;4578:779;;4667:20;:18;:20::i;:::-;4661:26;;4578:779;;;4712:66;;;;;4708:649;;4804:27;:25;:27::i;4708:649::-;4856:61;;;;;4852:505;;4943:22;:20;:22::i;4852:505::-;4990:55;;;;;4986:371;;5071:16;:14;:16::i;4986:371::-;5112:64;;;;;5108:249;;5202:25;:23;:25::i;5108:249::-;5266:76;;;;;216:2:282;5266:76:95;;;198:21:282;255:2;235:18;;;228:30;294:34;274:18;;;267:62;365:34;345:18;;;338:62;437:4;416:19;;;409:33;459:19;;5266:76:95;;;;;;;;5108:249;5426:3;5420:10;5413:4;5408:3;5404:14;5397:34;4464:1039;5475:17;:15;:17::i;:::-;4407:1102::o;3784:122:92:-;3828:7;3656:66;3854:39;:45;;;;3784:122;-1:-1:-1;3784:122:92:o;6985:255:95:-;7032:12;7056:19;:17;:19::i;:::-;7086:25;7125:12;:8;7134:1;7125:8;7086:25;7125:12;:::i;:::-;7114:35;;;;;;;:::i;:::-;7086:63;;7159:54;7177:17;7196:9;;;;;;;;;;;;7207:5;7159:17;:54::i;:::-;-1:-1:-1;;7224:9:95;;;;;;;;;-1:-1:-1;7224:9:95;;;6985:255::o;7524:254::-;7578:12;7603:25;;7662:12;:8;7671:1;7662:8;7603:25;7662:12;:::i;:::-;7651:42;;;;;;;:::i;:::-;7602:91;;;;7703:48;7721:17;7740:4;7746;7703:17;:48::i;:::-;7762:9;;;;;;;;;;;;;;;;7524:254;:::o;6694:216::-;6743:12;6767:19;:17;:19::i;:::-;6797:16;6827:12;:8;6836:1;6827:8;6797:16;6827:12;:::i;:::-;6816:35;;;;;;;:::i;:::-;6797:54;;6861:22;6874:8;6861:12;:22::i;5860:165::-;5903:12;5927:19;:17;:19::i;:::-;5957:13;5973:11;:9;:11::i;:::-;6001:17;;;2681:42:282;2669:55;;6001:17:95;;;2651:74:282;5957:27:95;;-1:-1:-1;2624:18:282;6001:17:95;;;;;;;;;;;;5994:24;;;5860:165;:::o;6385:198::-;6437:12;6461:19;:17;:19::i;:::-;6491:22;6516:17;:15;:17::i;2322:110:93:-;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;8261:77:95:-;8316:9;:14;8308:23;;;;;2057:265:92;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2204:112;2057:265;;;:::o;4300:135::-;4364:35;4377:11;:9;:11::i;:::-;4364:35;;;2920:42:282;2989:15;;;2971:34;;3041:15;;;3036:2;3021:18;;3014:43;2883:18;4364:35:92;;;;;;;4409:19;4419:8;4409:9;:19::i;:::-;4300:135;:::o;1148:140:91:-;1215:12;1246:35;:33;:35::i;:::-;1239:42;;1148:140;:::o;948:895:93:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;1771:152:92;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;;;;;;;;;;1771:152;:::o;6674:198:105:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:105:o;3988:201:92:-;4051:22;;;4043:73;;;;;;;3270:2:282;4043:73:92;;;3252:21:282;3309:2;3289:18;;;3282:30;3348:34;3328:18;;;3321:62;3419:8;3399:18;;;3392:36;3445:19;;4043:73:92;3068:402:282;4043:73:92;4174:8;3656:66;4126:39;:56;;;;;;;;;;;;;;;-1:-1:-1;3988:201:92:o;1175:140::-;1228:7;1030:66;1254:48;1859:190:107;1406:259:92;1702:19:105;;;;1479:95:92;;;;;;;3677:2:282;1479:95:92;;;3659:21:282;3716:2;3696:18;;;3689:30;3755:34;3735:18;;;3728:62;3826:15;3806:18;;;3799:43;3859:19;;1479:95:92;3475:409:282;1479:95:92;1641:17;1030:66;1584:48;1859:190:107;7058:325:105;7199:12;7224;7238:23;7265:6;:19;;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:105:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;1702:19;;;;8113:60;;;;;;;4638:2:282;8113:60:105;;;4620:21:282;4677:2;4657:18;;;4650:30;4716:31;4696:18;;;4689:59;4765:18;;8113:60:105;4436:353:282;8113:60:105;-1:-1:-1;8208:10:105;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;489:331:282:-;594:9;605;647:8;635:10;632:24;629:44;;;669:1;666;659:12;629:44;698:6;688:8;685:20;682:40;;;718:1;715;708:12;682:40;-1:-1:-1;;744:23:282;;;789:25;;;;;-1:-1:-1;489:331:282:o;825:204::-;901:20;;961:42;950:54;;940:65;;930:93;;1019:1;1016;1009:12;930:93;825:204;;;:::o;1034:202::-;1101:6;1154:2;1142:9;1133:7;1129:23;1125:32;1122:52;;;1170:1;1167;1160:12;1122:52;1193:37;1220:9;1193:37;:::i;1241:184::-;1293:77;1290:1;1283:88;1390:4;1387:1;1380:15;1414:4;1411:1;1404:15;1430:1070;1515:6;1523;1576:2;1564:9;1555:7;1551:23;1547:32;1544:52;;;1592:1;1589;1582:12;1544:52;1615:37;1642:9;1615:37;:::i;:::-;1605:47;;1703:2;1692:9;1688:18;1675:32;1726:18;1767:2;1759:6;1756:14;1753:34;;;1783:1;1780;1773:12;1753:34;1821:6;1810:9;1806:22;1796:32;;1866:7;1859:4;1855:2;1851:13;1847:27;1837:55;;1888:1;1885;1878:12;1837:55;1924:2;1911:16;1946:2;1942;1939:10;1936:36;;;1952:18;;:::i;:::-;2086:2;2080:9;2148:4;2140:13;;1991:66;2136:22;;;2160:2;2132:31;2128:40;2116:53;;;2184:18;;;2204:22;;;2181:46;2178:72;;;2230:18;;:::i;:::-;2270:10;2266:2;2259:22;2305:2;2297:6;2290:18;2345:7;2340:2;2335;2331;2327:11;2323:20;2320:33;2317:53;;;2366:1;2363;2356:12;2317:53;2422:2;2417;2413;2409:11;2404:2;2396:6;2392:15;2379:46;2467:1;2462:2;2457;2449:6;2445:15;2441:24;2434:35;2488:6;2478:16;;;;;;;1430:1070;;;;;:::o;3889:250::-;3974:1;3984:113;3998:6;3995:1;3992:13;3984:113;;;4074:11;;;4068:18;4055:11;;;4048:39;4020:2;4013:10;3984:113;;;-1:-1:-1;;4131:1:282;4113:16;;4106:27;3889:250::o;4144:287::-;4273:3;4311:6;4305:13;4327:66;4386:6;4381:3;4374:4;4366:6;4362:17;4327:66;:::i;:::-;4409:16;;;;;4144:287;-1:-1:-1;;4144:287:282:o;4794:455::-;4943:2;4932:9;4925:21;4906:4;4975:6;4969:13;5018:6;5013:2;5002:9;4998:18;4991:34;5034:79;5106:6;5101:2;5090:9;5086:18;5081:2;5073:6;5069:15;5034:79;:::i;:::-;5165:2;5153:15;5170:66;5149:88;5134:104;;;;5240:2;5130:113;;4794:455;-1:-1:-1;;4794:455:282:o", - linkReferences: {}, - }, - methodIdentifiers: {}, - rawMetadata: - '{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\"admin cannot fallback to proxy target\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it\'s best if it\'s a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is changed."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":"TransparentUpgradeableProxy"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":999999},"remappings":[":@eth-optimism/=../node_modules/@eth-optimism/",":@openzeppelin/=../node_modules/@openzeppelin/",":ds-test/=lib/forge-std/lib/ds-test/src/",":forge-std/=lib/forge-std/src/"]},"sources":{"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","license":"MIT","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","license":"MIT","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","license":"MIT","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","license":"MIT","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","license":"MIT","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","license":"MIT","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689","license":"MIT","urls":["bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017","dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","license":"MIT","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"]},"/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","license":"MIT","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"]}},"version":1}', - metadata: { - compiler: { version: "0.8.19+commit.7dd6d404" }, - language: "Solidity", - output: { - abi: [ - { - inputs: [ - { internalType: "address", name: "_logic", type: "address" }, - { internalType: "address", name: "admin_", type: "address" }, - { internalType: "bytes", name: "_data", type: "bytes" }, - ], - stateMutability: "payable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "previousAdmin", - type: "address", - indexed: false, - }, - { - internalType: "address", - name: "newAdmin", - type: "address", - indexed: false, - }, - ], - type: "event", - name: "AdminChanged", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "beacon", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "BeaconUpgraded", - anonymous: false, - }, - { - inputs: [ - { - internalType: "address", - name: "implementation", - type: "address", - indexed: true, - }, - ], - type: "event", - name: "Upgraded", - anonymous: false, - }, - { inputs: [], stateMutability: "payable", type: "fallback" }, - { inputs: [], stateMutability: "payable", type: "receive" }, - ], - devdoc: { - kind: "dev", - methods: { - constructor: { - details: - "Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.", - }, - }, - version: 1, - }, - userdoc: { kind: "user", methods: {}, version: 1 }, - }, - settings: { - remappings: [ - "@eth-optimism/=../node_modules/@eth-optimism/", - "@openzeppelin/=../node_modules/@openzeppelin/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - ], - optimizer: { enabled: true, runs: 999999 }, - metadata: { bytecodeHash: "ipfs" }, - compilationTarget: { - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": - "TransparentUpgradeableProxy", - }, - evmVersion: "paris", - libraries: {}, - }, - sources: { - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": - { - keccak256: - "0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90", - urls: [ - "bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263", - "dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": - { - keccak256: - "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff", - urls: [ - "bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688", - "dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": - { - keccak256: - "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d", - urls: [ - "bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5", - "dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol": - { - keccak256: - "0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2", - urls: [ - "bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2", - "dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/Proxy.sol": - { - keccak256: - "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27", - urls: [ - "bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472", - "dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": - { - keccak256: - "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", - urls: [ - "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", - "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": - { - keccak256: - "0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689", - urls: [ - "bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017", - "dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol": - { - keccak256: - "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - urls: [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm", - ], - license: "MIT", - }, - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": - { - keccak256: - "0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899", - urls: [ - "bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da", - "dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q", - ], - license: "MIT", - }, - }, - version: 1, - }, - ast: { - absolutePath: - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - id: 13138, - exportedSymbols: { - Address: [14766], - ERC1967Proxy: [12448], - ERC1967Upgrade: [12752], - IBeacon: [12814], - IERC1822Proxiable: [12411], - IERC1967: [12401], - ITransparentUpgradeableProxy: [12848], - Proxy: [12804], - StorageSlot: [14898], - TransparentUpgradeableProxy: [13137], - }, - nodeType: "SourceUnit", - src: "133:8208:95", - nodes: [ - { - id: 12816, - nodeType: "PragmaDirective", - src: "133:23:95", - nodes: [], - literals: ["solidity", "^", "0.8", ".0"], - }, - { - id: 12817, - nodeType: "ImportDirective", - src: "158:37:95", - nodes: [], - absolutePath: - "/Users/eddy/dev/hpl/hyperlane-monorepo/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - file: "../ERC1967/ERC1967Proxy.sol", - nameLocation: "-1:-1:-1", - scope: 13138, - sourceUnit: 12449, - symbolAliases: [], - unitAlias: "", - }, - { - id: 12848, - nodeType: "ContractDefinition", - src: "637:332:95", - nodes: [ - { - id: 12825, - nodeType: "FunctionDefinition", - src: "694:49:95", - nodes: [], - functionSelector: "f851a440", - implemented: false, - kind: "function", - modifiers: [], - name: "admin", - nameLocation: "703:5:95", - parameters: { - id: 12821, - nodeType: "ParameterList", - parameters: [], - src: "708:2:95", - }, - returnParameters: { - id: 12824, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12823, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12825, - src: "734:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12822, - name: "address", - nodeType: "ElementaryTypeName", - src: "734:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "733:9:95", - }, - scope: 12848, - stateMutability: "view", - virtual: false, - visibility: "external", - }, - { - id: 12830, - nodeType: "FunctionDefinition", - src: "749:58:95", - nodes: [], - functionSelector: "5c60da1b", - implemented: false, - kind: "function", - modifiers: [], - name: "implementation", - nameLocation: "758:14:95", - parameters: { - id: 12826, - nodeType: "ParameterList", - parameters: [], - src: "772:2:95", - }, - returnParameters: { - id: 12829, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12828, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12830, - src: "798:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12827, - name: "address", - nodeType: "ElementaryTypeName", - src: "798:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "797:9:95", - }, - scope: 12848, - stateMutability: "view", - virtual: false, - visibility: "external", - }, - { - id: 12835, - nodeType: "FunctionDefinition", - src: "813:39:95", - nodes: [], - functionSelector: "8f283970", - implemented: false, - kind: "function", - modifiers: [], - name: "changeAdmin", - nameLocation: "822:11:95", - parameters: { - id: 12833, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12832, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12835, - src: "834:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12831, - name: "address", - nodeType: "ElementaryTypeName", - src: "834:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "833:9:95", - }, - returnParameters: { - id: 12834, - nodeType: "ParameterList", - parameters: [], - src: "851:0:95", - }, - scope: 12848, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 12840, - nodeType: "FunctionDefinition", - src: "858:37:95", - nodes: [], - functionSelector: "3659cfe6", - implemented: false, - kind: "function", - modifiers: [], - name: "upgradeTo", - nameLocation: "867:9:95", - parameters: { - id: 12838, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12837, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12840, - src: "877:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12836, - name: "address", - nodeType: "ElementaryTypeName", - src: "877:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "876:9:95", - }, - returnParameters: { - id: 12839, - nodeType: "ParameterList", - parameters: [], - src: "894:0:95", - }, - scope: 12848, - stateMutability: "nonpayable", - virtual: false, - visibility: "external", - }, - { - id: 12847, - nodeType: "FunctionDefinition", - src: "901:66:95", - nodes: [], - functionSelector: "4f1ef286", - implemented: false, - kind: "function", - modifiers: [], - name: "upgradeToAndCall", - nameLocation: "910:16:95", - parameters: { - id: 12845, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12842, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12847, - src: "927:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12841, - name: "address", - nodeType: "ElementaryTypeName", - src: "927:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12844, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12847, - src: "936:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12843, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "936:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "926:23:95", - }, - returnParameters: { - id: 12846, - nodeType: "ParameterList", - parameters: [], - src: "966:0:95", - }, - scope: 12848, - stateMutability: "payable", - virtual: false, - visibility: "external", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 12819, - name: "IERC1967", - nameLocations: ["679:8:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12401, - src: "679:8:95", - }, - id: 12820, - nodeType: "InheritanceSpecifier", - src: "679:8:95", - }, - ], - canonicalName: "ITransparentUpgradeableProxy", - contractDependencies: [], - contractKind: "interface", - documentation: { - id: 12818, - nodeType: "StructuredDocumentation", - src: "197:439:95", - text: " @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and some of its functions are implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it.", - }, - fullyImplemented: false, - linearizedBaseContracts: [12848, 12401], - name: "ITransparentUpgradeableProxy", - nameLocation: "647:28:95", - scope: 13138, - usedErrors: [], - }, - { - id: 13137, - nodeType: "ContractDefinition", - src: "3389:4951:95", - nodes: [ - { - id: 12870, - nodeType: "FunctionDefinition", - src: "3663:137:95", - nodes: [], - body: { - id: 12869, - nodeType: "Block", - src: "3763:37:95", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - id: 12866, - name: "admin_", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12856, - src: "3786:6:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - id: 12865, - name: "_changeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12660, - src: "3773:12:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$returns$__$", - typeString: "function (address)", - }, - }, - id: 12867, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "3773:20:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12868, - nodeType: "ExpressionStatement", - src: "3773:20:95", - }, - ], - }, - documentation: { - id: 12852, - nodeType: "StructuredDocumentation", - src: "3448:210:95", - text: " @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.", - }, - implemented: true, - kind: "constructor", - modifiers: [ - { - arguments: [ - { - id: 12861, - name: "_logic", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12854, - src: "3748:6:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 12862, - name: "_data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12858, - src: "3756:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - ], - id: 12863, - kind: "baseConstructorSpecifier", - modifierName: { - id: 12860, - name: "ERC1967Proxy", - nameLocations: ["3735:12:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12448, - src: "3735:12:95", - }, - nodeType: "ModifierInvocation", - src: "3735:27:95", - }, - ], - name: "", - nameLocation: "-1:-1:-1", - parameters: { - id: 12859, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12854, - mutability: "mutable", - name: "_logic", - nameLocation: "3683:6:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3675:14:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12853, - name: "address", - nodeType: "ElementaryTypeName", - src: "3675:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12856, - mutability: "mutable", - name: "admin_", - nameLocation: "3699:6:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3691:14:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12855, - name: "address", - nodeType: "ElementaryTypeName", - src: "3691:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 12858, - mutability: "mutable", - name: "_data", - nameLocation: "3720:5:95", - nodeType: "VariableDeclaration", - scope: 12870, - src: "3707:18:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12857, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "3707:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "3674:52:95", - }, - returnParameters: { - id: 12864, - nodeType: "ParameterList", - parameters: [], - src: "3763:0:95", - }, - scope: 13137, - stateMutability: "payable", - virtual: false, - visibility: "public", - }, - { - id: 12886, - nodeType: "ModifierDefinition", - src: "4132:134:95", - nodes: [], - body: { - id: 12885, - nodeType: "Block", - src: "4151:115:95", - nodes: [], - statements: [ - { - condition: { - commonType: { - typeIdentifier: "t_address", - typeString: "address", - }, - id: 12877, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 12873, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4165:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12874, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4169:6:95", - memberName: "sender", - nodeType: "MemberAccess", - src: "4165:10:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12875, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "4179:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12876, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4179:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - src: "4165:25:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12883, - nodeType: "Block", - src: "4224:36:95", - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12880, - name: "_fallback", - nodeType: "Identifier", - overloadedDeclarations: [12979], - referencedDeclaration: 12979, - src: "4238:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12881, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4238:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12882, - nodeType: "ExpressionStatement", - src: "4238:11:95", - }, - ], - }, - id: 12884, - nodeType: "IfStatement", - src: "4161:99:95", - trueBody: { - id: 12879, - nodeType: "Block", - src: "4192:26:95", - statements: [ - { - id: 12878, - nodeType: "PlaceholderStatement", - src: "4206:1:95", - }, - ], - }, - }, - ], - }, - documentation: { - id: 12871, - nodeType: "StructuredDocumentation", - src: "3806:321:95", - text: " @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n CAUTION: This modifier is deprecated, as it could cause issues if the modified function has arguments, and the\n implementation provides a function with the same selector.", - }, - name: "ifAdmin", - nameLocation: "4141:7:95", - parameters: { - id: 12872, - nodeType: "ParameterList", - parameters: [], - src: "4148:2:95", - }, - virtual: false, - visibility: "internal", - }, - { - id: 12979, - nodeType: "FunctionDefinition", - src: "4407:1102:95", - nodes: [], - body: { - id: 12978, - nodeType: "Block", - src: "4454:1055:95", - nodes: [], - statements: [ - { - condition: { - commonType: { - typeIdentifier: "t_address", - typeString: "address", - }, - id: 12895, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 12891, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4468:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12892, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4472:6:95", - memberName: "sender", - nodeType: "MemberAccess", - src: "4468:10:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12893, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "4482:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12894, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4482:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - src: "4468:25:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12976, - nodeType: "Block", - src: "5461:42:95", - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - expression: { - id: 12971, - name: "super", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -25, - src: "5475:5:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_super$_TransparentUpgradeableProxy_$13137_$", - typeString: - "type(contract super TransparentUpgradeableProxy)", - }, - }, - id: 12973, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "5481:9:95", - memberName: "_fallback", - nodeType: "MemberAccess", - referencedDeclaration: 12782, - src: "5475:15:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12974, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5475:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12975, - nodeType: "ExpressionStatement", - src: "5475:17:95", - }, - ], - }, - id: 12977, - nodeType: "IfStatement", - src: "4464:1039:95", - trueBody: { - id: 12970, - nodeType: "Block", - src: "4495:960:95", - statements: [ - { - assignments: [12897], - declarations: [ - { - constant: false, - id: 12897, - mutability: "mutable", - name: "ret", - nameLocation: "4522:3:95", - nodeType: "VariableDeclaration", - scope: 12970, - src: "4509:16:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12896, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "4509:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 12898, - nodeType: "VariableDeclarationStatement", - src: "4509:16:95", - }, - { - assignments: [12900], - declarations: [ - { - constant: false, - id: 12900, - mutability: "mutable", - name: "selector", - nameLocation: "4546:8:95", - nodeType: "VariableDeclaration", - scope: 12970, - src: "4539:15:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - typeName: { - id: 12899, - name: "bytes4", - nodeType: "ElementaryTypeName", - src: "4539:6:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - visibility: "internal", - }, - ], - id: 12903, - initialValue: { - expression: { - id: 12901, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "4557:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 12902, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "4561:3:95", - memberName: "sig", - nodeType: "MemberAccess", - src: "4557:7:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "4539:25:95", - }, - { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12908, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12904, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4582:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12905, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4594:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12906, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4623:9:95", - memberName: "upgradeTo", - nodeType: "MemberAccess", - referencedDeclaration: 12840, - src: "4594:38:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_nonpayable$_t_address_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.upgradeTo(address)", - }, - }, - id: 12907, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4633:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4594:47:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4582:59:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12919, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12915, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4712:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12916, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4724:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12917, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4753:16:95", - memberName: "upgradeToAndCall", - nodeType: "MemberAccess", - referencedDeclaration: 12847, - src: "4724:45:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes memory) payable", - }, - }, - id: 12918, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4770:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4724:54:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4712:66:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12930, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12926, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4856:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12927, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "4868:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12928, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4897:11:95", - memberName: "changeAdmin", - nodeType: "MemberAccess", - referencedDeclaration: 12835, - src: "4868:40:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_nonpayable$_t_address_$returns$__$", - typeString: - "function ITransparentUpgradeableProxy.changeAdmin(address)", - }, - }, - id: 12929, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "4909:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "4868:49:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4856:61:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12941, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12937, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "4990:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12938, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "5002:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12939, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5031:5:95", - memberName: "admin", - nodeType: "MemberAccess", - referencedDeclaration: 12825, - src: "5002:34:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_view$__$returns$_t_address_$", - typeString: - "function ITransparentUpgradeableProxy.admin() view returns (address)", - }, - }, - id: 12940, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5037:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "5002:43:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "4990:55:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - condition: { - commonType: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - id: 12952, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - id: 12948, - name: "selector", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12900, - src: "5112:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - expression: { - expression: { - id: 12949, - name: "ITransparentUpgradeableProxy", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12848, - src: "5124:28:95", - typeDescriptions: { - typeIdentifier: - "t_type$_t_contract$_ITransparentUpgradeableProxy_$12848_$", - typeString: - "type(contract ITransparentUpgradeableProxy)", - }, - }, - id: 12950, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5153:14:95", - memberName: "implementation", - nodeType: "MemberAccess", - referencedDeclaration: 12830, - src: "5124:43:95", - typeDescriptions: { - typeIdentifier: - "t_function_declaration_view$__$returns$_t_address_$", - typeString: - "function ITransparentUpgradeableProxy.implementation() view returns (address)", - }, - }, - id: 12951, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "5168:8:95", - memberName: "selector", - nodeType: "MemberAccess", - src: "5124:52:95", - typeDescriptions: { - typeIdentifier: "t_bytes4", - typeString: "bytes4", - }, - }, - src: "5112:64:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - falseBody: { - id: 12963, - nodeType: "Block", - src: "5248:109:95", - statements: [ - { - expression: { - arguments: [ - { - hexValue: - "5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574", - id: 12960, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "5273:68:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d", - typeString: - 'literal_string "TransparentUpgradeableProxy: admin cannot fallback to proxy target"', - }, - value: - "TransparentUpgradeableProxy: admin cannot fallback to proxy target", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d", - typeString: - 'literal_string "TransparentUpgradeableProxy: admin cannot fallback to proxy target"', - }, - ], - id: 12959, - name: "revert", - nodeType: "Identifier", - overloadedDeclarations: [-19, -19], - referencedDeclaration: -19, - src: "5266:6:95", - typeDescriptions: { - typeIdentifier: - "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - typeString: - "function (string memory) pure", - }, - }, - id: 12961, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5266:76:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12962, - nodeType: "ExpressionStatement", - src: "5266:76:95", - }, - ], - }, - id: 12964, - nodeType: "IfStatement", - src: "5108:249:95", - trueBody: { - id: 12958, - nodeType: "Block", - src: "5178:64:95", - statements: [ - { - expression: { - id: 12956, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12953, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "5196:3:95", - typeDescriptions: { - typeIdentifier: - "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12954, - name: "_dispatchImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13019, - src: "5202:23:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12955, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5202:25:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "5196:31:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12957, - nodeType: "ExpressionStatement", - src: "5196:31:95", - }, - ], - }, - }, - id: 12965, - nodeType: "IfStatement", - src: "4986:371:95", - trueBody: { - id: 12947, - nodeType: "Block", - src: "5047:55:95", - statements: [ - { - expression: { - id: 12945, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12942, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "5065:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12943, - name: "_dispatchAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12999, - src: "5071:14:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12944, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5071:16:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "5065:22:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12946, - nodeType: "ExpressionStatement", - src: "5065:22:95", - }, - ], - }, - }, - id: 12966, - nodeType: "IfStatement", - src: "4852:505:95", - trueBody: { - id: 12936, - nodeType: "Block", - src: "4919:61:95", - statements: [ - { - expression: { - id: 12934, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12931, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4937:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12932, - name: "_dispatchChangeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13048, - src: "4943:20:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12933, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4943:22:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4937:28:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12935, - nodeType: "ExpressionStatement", - src: "4937:28:95", - }, - ], - }, - }, - id: 12967, - nodeType: "IfStatement", - src: "4708:649:95", - trueBody: { - id: 12925, - nodeType: "Block", - src: "4780:66:95", - statements: [ - { - expression: { - id: 12923, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12920, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4798:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12921, - name: "_dispatchUpgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13114, - src: "4804:25:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12922, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4804:27:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4798:33:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12924, - nodeType: "ExpressionStatement", - src: "4798:33:95", - }, - ], - }, - }, - id: 12968, - nodeType: "IfStatement", - src: "4578:779:95", - trueBody: { - id: 12914, - nodeType: "Block", - src: "4643:59:95", - statements: [ - { - expression: { - id: 12912, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftHandSide: { - id: 12909, - name: "ret", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12897, - src: "4661:3:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - nodeType: "Assignment", - operator: "=", - rightHandSide: { - arguments: [], - expression: { - argumentTypes: [], - id: 12910, - name: "_dispatchUpgradeTo", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13082, - src: "4667:18:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$_t_bytes_memory_ptr_$", - typeString: - "function () returns (bytes memory)", - }, - }, - id: 12911, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "4667:20:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - src: "4661:26:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - id: 12913, - nodeType: "ExpressionStatement", - src: "4661:26:95", - }, - ], - }, - }, - { - AST: { - nodeType: "YulBlock", - src: "5379:66:95", - statements: [ - { - expression: { - arguments: [ - { - arguments: [ - { - name: "ret", - nodeType: "YulIdentifier", - src: "5408:3:95", - }, - { - kind: "number", - nodeType: "YulLiteral", - src: "5413:4:95", - type: "", - value: "0x20", - }, - ], - functionName: { - name: "add", - nodeType: "YulIdentifier", - src: "5404:3:95", - }, - nodeType: "YulFunctionCall", - src: "5404:14:95", - }, - { - arguments: [ - { - name: "ret", - nodeType: "YulIdentifier", - src: "5426:3:95", - }, - ], - functionName: { - name: "mload", - nodeType: "YulIdentifier", - src: "5420:5:95", - }, - nodeType: "YulFunctionCall", - src: "5420:10:95", - }, - ], - functionName: { - name: "return", - nodeType: "YulIdentifier", - src: "5397:6:95", - }, - nodeType: "YulFunctionCall", - src: "5397:34:95", - }, - nodeType: "YulExpressionStatement", - src: "5397:34:95", - }, - ], - }, - evmVersion: "paris", - externalReferences: [ - { - declaration: 12897, - isOffset: false, - isSlot: false, - src: "5408:3:95", - valueSize: 1, - }, - { - declaration: 12897, - isOffset: false, - isSlot: false, - src: "5426:3:95", - valueSize: 1, - }, - ], - id: 12969, - nodeType: "InlineAssembly", - src: "5370:75:95", - }, - ], - }, - }, - ], - }, - baseFunctions: [12782], - documentation: { - id: 12887, - nodeType: "StructuredDocumentation", - src: "4272:130:95", - text: " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_fallback", - nameLocation: "4416:9:95", - overrides: { - id: 12889, - nodeType: "OverrideSpecifier", - overrides: [], - src: "4445:8:95", - }, - parameters: { - id: 12888, - nodeType: "ParameterList", - parameters: [], - src: "4425:2:95", - }, - returnParameters: { - id: 12890, - nodeType: "ParameterList", - parameters: [], - src: "4454:0:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: true, - visibility: "internal", - }, - { - id: 12999, - nodeType: "FunctionDefinition", - src: "5860:165:95", - nodes: [], - body: { - id: 12998, - nodeType: "Block", - src: "5917:108:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 12985, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "5927:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 12986, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5927:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 12987, - nodeType: "ExpressionStatement", - src: "5927:19:95", - }, - { - assignments: [12989], - declarations: [ - { - constant: false, - id: 12989, - mutability: "mutable", - name: "admin", - nameLocation: "5965:5:95", - nodeType: "VariableDeclaration", - scope: 12998, - src: "5957:13:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 12988, - name: "address", - nodeType: "ElementaryTypeName", - src: "5957:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 12992, - initialValue: { - arguments: [], - expression: { - argumentTypes: [], - id: 12990, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "5973:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 12991, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "5973:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "5957:27:95", - }, - { - expression: { - arguments: [ - { - id: 12995, - name: "admin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12989, - src: "6012:5:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 12993, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6001:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 12994, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6005:6:95", - memberName: "encode", - nodeType: "MemberAccess", - src: "6001:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - typeString: "function () pure returns (bytes memory)", - }, - }, - id: 12996, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6001:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - functionReturnParameters: 12984, - id: 12997, - nodeType: "Return", - src: "5994:24:95", - }, - ], - }, - documentation: { - id: 12980, - nodeType: "StructuredDocumentation", - src: "5515:340:95", - text: " @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchAdmin", - nameLocation: "5869:14:95", - parameters: { - id: 12981, - nodeType: "ParameterList", - parameters: [], - src: "5883:2:95", - }, - returnParameters: { - id: 12984, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 12983, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 12999, - src: "5903:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 12982, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "5903:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "5902:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13019, - nodeType: "FunctionDefinition", - src: "6385:198:95", - nodes: [], - body: { - id: 13018, - nodeType: "Block", - src: "6451:132:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13005, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "6461:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13006, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6461:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13007, - nodeType: "ExpressionStatement", - src: "6461:19:95", - }, - { - assignments: [13009], - declarations: [ - { - constant: false, - id: 13009, - mutability: "mutable", - name: "implementation", - nameLocation: "6499:14:95", - nodeType: "VariableDeclaration", - scope: 13018, - src: "6491:22:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13008, - name: "address", - nodeType: "ElementaryTypeName", - src: "6491:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13012, - initialValue: { - arguments: [], - expression: { - argumentTypes: [], - id: 13010, - name: "_implementation", - nodeType: "Identifier", - overloadedDeclarations: [12447], - referencedDeclaration: 12447, - src: "6516:15:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 13011, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6516:17:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "6491:42:95", - }, - { - expression: { - arguments: [ - { - id: 13015, - name: "implementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13009, - src: "6561:14:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - expression: { - id: 13013, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6550:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13014, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6554:6:95", - memberName: "encode", - nodeType: "MemberAccess", - src: "6550:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - typeString: "function () pure returns (bytes memory)", - }, - }, - id: 13016, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6550:26:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - functionReturnParameters: 13004, - id: 13017, - nodeType: "Return", - src: "6543:33:95", - }, - ], - }, - documentation: { - id: 13000, - nodeType: "StructuredDocumentation", - src: "6031:349:95", - text: " @dev Returns the current implementation.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchImplementation", - nameLocation: "6394:23:95", - parameters: { - id: 13001, - nodeType: "ParameterList", - parameters: [], - src: "6417:2:95", - }, - returnParameters: { - id: 13004, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13003, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13019, - src: "6437:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13002, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "6437:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "6436:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13048, - nodeType: "FunctionDefinition", - src: "6694:216:95", - nodes: [], - body: { - id: 13047, - nodeType: "Block", - src: "6757:153:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13025, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "6767:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13026, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6767:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13027, - nodeType: "ExpressionStatement", - src: "6767:19:95", - }, - { - assignments: [13029], - declarations: [ - { - constant: false, - id: 13029, - mutability: "mutable", - name: "newAdmin", - nameLocation: "6805:8:95", - nodeType: "VariableDeclaration", - scope: 13047, - src: "6797:16:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13028, - name: "address", - nodeType: "ElementaryTypeName", - src: "6797:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13040, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13032, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "6827:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13033, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "6831:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "6827:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13035, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "6827:12:95", - startExpression: { - hexValue: "34", - id: 13034, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "6836:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13037, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "6842:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13036, - name: "address", - nodeType: "ElementaryTypeName", - src: "6842:7:95", - typeDescriptions: {}, - }, - }, - ], - id: 13038, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "6841:9:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 13030, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "6816:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13031, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "6820:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "6816:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13039, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6816:35:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "6797:54:95", - }, - { - expression: { - arguments: [ - { - id: 13042, - name: "newAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13029, - src: "6874:8:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - ], - id: 13041, - name: "_changeAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12660, - src: "6861:12:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$returns$__$", - typeString: "function (address)", - }, - }, - id: 13043, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "6861:22:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13044, - nodeType: "ExpressionStatement", - src: "6861:22:95", - }, - { - expression: { - hexValue: "", - id: 13045, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "6901:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13024, - id: 13046, - nodeType: "Return", - src: "6894:9:95", - }, - ], - }, - documentation: { - id: 13020, - nodeType: "StructuredDocumentation", - src: "6589:100:95", - text: " @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchChangeAdmin", - nameLocation: "6703:20:95", - parameters: { - id: 13021, - nodeType: "ParameterList", - parameters: [], - src: "6723:2:95", - }, - returnParameters: { - id: 13024, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13023, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13048, - src: "6743:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13022, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "6743:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "6742:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13082, - nodeType: "FunctionDefinition", - src: "6985:255:95", - nodes: [], - body: { - id: 13081, - nodeType: "Block", - src: "7046:194:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13054, - name: "_requireZeroValue", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13136, - src: "7056:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$__$returns$__$", - typeString: "function ()", - }, - }, - id: 13055, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7056:19:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13056, - nodeType: "ExpressionStatement", - src: "7056:19:95", - }, - { - assignments: [13058], - declarations: [ - { - constant: false, - id: 13058, - mutability: "mutable", - name: "newImplementation", - nameLocation: "7094:17:95", - nodeType: "VariableDeclaration", - scope: 13081, - src: "7086:25:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13057, - name: "address", - nodeType: "ElementaryTypeName", - src: "7086:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - id: 13069, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13061, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "7125:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13062, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "7129:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "7125:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13064, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "7125:12:95", - startExpression: { - hexValue: "34", - id: 13063, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "7134:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13066, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7140:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13065, - name: "address", - nodeType: "ElementaryTypeName", - src: "7140:7:95", - typeDescriptions: {}, - }, - }, - ], - id: 13067, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "7139:9:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - ], - expression: { - id: 13059, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "7114:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13060, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "7118:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "7114:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13068, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7114:35:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address_payable", - typeString: "address payable", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "7086:63:95", - }, - { - expression: { - arguments: [ - { - id: 13071, - name: "newImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13058, - src: "7177:17:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - arguments: [ - { - hexValue: "", - id: 13074, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7202:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - ], - id: 13073, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7196:5:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_bytes_storage_ptr_$", - typeString: "type(bytes storage pointer)", - }, - typeName: { - id: 13072, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7196:5:95", - typeDescriptions: {}, - }, - }, - id: 13075, - isConstant: false, - isLValue: false, - isPure: true, - kind: "typeConversion", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7196:9:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - hexValue: "66616c7365", - id: 13076, - isConstant: false, - isLValue: false, - isPure: true, - kind: "bool", - lValueRequested: false, - nodeType: "Literal", - src: "7207:5:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - value: "false", - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13070, - name: "_upgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12547, - src: "7159:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - typeString: "function (address,bytes memory,bool)", - }, - }, - id: 13077, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7159:54:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13078, - nodeType: "ExpressionStatement", - src: "7159:54:95", - }, - { - expression: { - hexValue: "", - id: 13079, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7231:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13053, - id: 13080, - nodeType: "Return", - src: "7224:9:95", - }, - ], - }, - documentation: { - id: 13049, - nodeType: "StructuredDocumentation", - src: "6916:64:95", - text: " @dev Upgrade the implementation of the proxy.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchUpgradeTo", - nameLocation: "6994:18:95", - parameters: { - id: 13050, - nodeType: "ParameterList", - parameters: [], - src: "7012:2:95", - }, - returnParameters: { - id: 13053, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13052, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13082, - src: "7032:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13051, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7032:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "7031:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13114, - nodeType: "FunctionDefinition", - src: "7524:254:95", - nodes: [], - body: { - id: 13113, - nodeType: "Block", - src: "7592:186:95", - nodes: [], - statements: [ - { - assignments: [13089, 13091], - declarations: [ - { - constant: false, - id: 13089, - mutability: "mutable", - name: "newImplementation", - nameLocation: "7611:17:95", - nodeType: "VariableDeclaration", - scope: 13113, - src: "7603:25:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13088, - name: "address", - nodeType: "ElementaryTypeName", - src: "7603:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - { - constant: false, - id: 13091, - mutability: "mutable", - name: "data", - nameLocation: "7643:4:95", - nodeType: "VariableDeclaration", - scope: 13113, - src: "7630:17:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13090, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7630:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - id: 13104, - initialValue: { - arguments: [ - { - baseExpression: { - expression: { - id: 13094, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "7662:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13095, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "7666:4:95", - memberName: "data", - nodeType: "MemberAccess", - src: "7662:8:95", - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr", - typeString: "bytes calldata", - }, - }, - id: 13097, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - nodeType: "IndexRangeAccess", - src: "7662:12:95", - startExpression: { - hexValue: "34", - id: 13096, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "7671:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_4_by_1", - typeString: "int_const 4", - }, - value: "4", - }, - typeDescriptions: { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - }, - { - components: [ - { - id: 13099, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7677:7:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_address_$", - typeString: "type(address)", - }, - typeName: { - id: 13098, - name: "address", - nodeType: "ElementaryTypeName", - src: "7677:7:95", - typeDescriptions: {}, - }, - }, - { - id: 13101, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "ElementaryTypeNameExpression", - src: "7686:5:95", - typeDescriptions: { - typeIdentifier: "t_type$_t_bytes_storage_ptr_$", - typeString: "type(bytes storage pointer)", - }, - typeName: { - id: 13100, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7686:5:95", - typeDescriptions: {}, - }, - }, - ], - id: 13102, - isConstant: false, - isInlineArray: false, - isLValue: false, - isPure: true, - lValueRequested: false, - nodeType: "TupleExpression", - src: "7676:16:95", - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - typeString: - "tuple(type(address),type(bytes storage pointer))", - }, - }, - ], - expression: { - argumentTypes: [ - { - typeIdentifier: "t_bytes_calldata_ptr_slice", - typeString: "bytes calldata slice", - }, - { - typeIdentifier: - "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - typeString: - "tuple(type(address),type(bytes storage pointer))", - }, - ], - expression: { - id: 13092, - name: "abi", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -1, - src: "7651:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_abi", - typeString: "abi", - }, - }, - id: 13093, - isConstant: false, - isLValue: false, - isPure: true, - lValueRequested: false, - memberLocation: "7655:6:95", - memberName: "decode", - nodeType: "MemberAccess", - src: "7651:10:95", - typeDescriptions: { - typeIdentifier: - "t_function_abidecode_pure$__$returns$__$", - typeString: "function () pure", - }, - }, - id: 13103, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7651:42:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: - "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", - typeString: "tuple(address payable,bytes memory)", - }, - }, - nodeType: "VariableDeclarationStatement", - src: "7602:91:95", - }, - { - expression: { - arguments: [ - { - id: 13106, - name: "newImplementation", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13089, - src: "7721:17:95", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - { - id: 13107, - name: "data", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 13091, - src: "7740:4:95", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - }, - { - hexValue: "74727565", - id: 13108, - isConstant: false, - isLValue: false, - isPure: true, - kind: "bool", - lValueRequested: false, - nodeType: "Literal", - src: "7746:4:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - value: "true", - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_address", typeString: "address" }, - { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes memory", - }, - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13105, - name: "_upgradeToAndCall", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12547, - src: "7703:17:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - typeString: "function (address,bytes memory,bool)", - }, - }, - id: 13109, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "7703:48:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13110, - nodeType: "ExpressionStatement", - src: "7703:48:95", - }, - { - expression: { - hexValue: "", - id: 13111, - isConstant: false, - isLValue: false, - isPure: true, - kind: "string", - lValueRequested: false, - nodeType: "Literal", - src: "7769:2:95", - typeDescriptions: { - typeIdentifier: - "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - typeString: 'literal_string ""', - }, - value: "", - }, - functionReturnParameters: 13087, - id: 13112, - nodeType: "Return", - src: "7762:9:95", - }, - ], - }, - documentation: { - id: 13083, - nodeType: "StructuredDocumentation", - src: "7246:273:95", - text: " @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_dispatchUpgradeToAndCall", - nameLocation: "7533:25:95", - parameters: { - id: 13084, - nodeType: "ParameterList", - parameters: [], - src: "7558:2:95", - }, - returnParameters: { - id: 13087, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13086, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13114, - src: "7578:12:95", - stateVariable: false, - storageLocation: "memory", - typeDescriptions: { - typeIdentifier: "t_bytes_memory_ptr", - typeString: "bytes", - }, - typeName: { - id: 13085, - name: "bytes", - nodeType: "ElementaryTypeName", - src: "7578:5:95", - typeDescriptions: { - typeIdentifier: "t_bytes_storage_ptr", - typeString: "bytes", - }, - }, - visibility: "internal", - }, - ], - src: "7577:14:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - { - id: 13124, - nodeType: "FunctionDefinition", - src: "7931:93:95", - nodes: [], - body: { - id: 13123, - nodeType: "Block", - src: "7989:35:95", - nodes: [], - statements: [ - { - expression: { - arguments: [], - expression: { - argumentTypes: [], - id: 13120, - name: "_getAdmin", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: 12617, - src: "8006:9:95", - typeDescriptions: { - typeIdentifier: - "t_function_internal_view$__$returns$_t_address_$", - typeString: "function () view returns (address)", - }, - }, - id: 13121, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "8006:11:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - functionReturnParameters: 13119, - id: 13122, - nodeType: "Return", - src: "7999:18:95", - }, - ], - }, - documentation: { - id: 13115, - nodeType: "StructuredDocumentation", - src: "7784:142:95", - text: " @dev Returns the current admin.\n CAUTION: This function is deprecated. Use {ERC1967Upgrade-_getAdmin} instead.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_admin", - nameLocation: "7940:6:95", - parameters: { - id: 13116, - nodeType: "ParameterList", - parameters: [], - src: "7946:2:95", - }, - returnParameters: { - id: 13119, - nodeType: "ParameterList", - parameters: [ - { - constant: false, - id: 13118, - mutability: "mutable", - name: "", - nameLocation: "-1:-1:-1", - nodeType: "VariableDeclaration", - scope: 13124, - src: "7980:7:95", - stateVariable: false, - storageLocation: "default", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - typeName: { - id: 13117, - name: "address", - nodeType: "ElementaryTypeName", - src: "7980:7:95", - stateMutability: "nonpayable", - typeDescriptions: { - typeIdentifier: "t_address", - typeString: "address", - }, - }, - visibility: "internal", - }, - ], - src: "7979:9:95", - }, - scope: 13137, - stateMutability: "view", - virtual: true, - visibility: "internal", - }, - { - id: 13136, - nodeType: "FunctionDefinition", - src: "8261:77:95", - nodes: [], - body: { - id: 13135, - nodeType: "Block", - src: "8298:40:95", - nodes: [], - statements: [ - { - expression: { - arguments: [ - { - commonType: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - id: 13132, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - leftExpression: { - expression: { - id: 13129, - name: "msg", - nodeType: "Identifier", - overloadedDeclarations: [], - referencedDeclaration: -15, - src: "8316:3:95", - typeDescriptions: { - typeIdentifier: "t_magic_message", - typeString: "msg", - }, - }, - id: 13130, - isConstant: false, - isLValue: false, - isPure: false, - lValueRequested: false, - memberLocation: "8320:5:95", - memberName: "value", - nodeType: "MemberAccess", - src: "8316:9:95", - typeDescriptions: { - typeIdentifier: "t_uint256", - typeString: "uint256", - }, - }, - nodeType: "BinaryOperation", - operator: "==", - rightExpression: { - hexValue: "30", - id: 13131, - isConstant: false, - isLValue: false, - isPure: true, - kind: "number", - lValueRequested: false, - nodeType: "Literal", - src: "8329:1:95", - typeDescriptions: { - typeIdentifier: "t_rational_0_by_1", - typeString: "int_const 0", - }, - value: "0", - }, - src: "8316:14:95", - typeDescriptions: { - typeIdentifier: "t_bool", - typeString: "bool", - }, - }, - ], - expression: { - argumentTypes: [ - { typeIdentifier: "t_bool", typeString: "bool" }, - ], - id: 13128, - name: "require", - nodeType: "Identifier", - overloadedDeclarations: [-18, -18], - referencedDeclaration: -18, - src: "8308:7:95", - typeDescriptions: { - typeIdentifier: - "t_function_require_pure$_t_bool_$returns$__$", - typeString: "function (bool) pure", - }, - }, - id: 13133, - isConstant: false, - isLValue: false, - isPure: false, - kind: "functionCall", - lValueRequested: false, - nameLocations: [], - names: [], - nodeType: "FunctionCall", - src: "8308:23:95", - tryCall: false, - typeDescriptions: { - typeIdentifier: "t_tuple$__$", - typeString: "tuple()", - }, - }, - id: 13134, - nodeType: "ExpressionStatement", - src: "8308:23:95", - }, - ], - }, - documentation: { - id: 13125, - nodeType: "StructuredDocumentation", - src: "8030:226:95", - text: " @dev To keep this contract fully transparent, all `ifAdmin` functions must be payable. This helper is here to\n emulate some proxy functions being non-payable while still allowing value to pass through.", - }, - implemented: true, - kind: "function", - modifiers: [], - name: "_requireZeroValue", - nameLocation: "8270:17:95", - parameters: { - id: 13126, - nodeType: "ParameterList", - parameters: [], - src: "8287:2:95", - }, - returnParameters: { - id: 13127, - nodeType: "ParameterList", - parameters: [], - src: "8298:0:95", - }, - scope: 13137, - stateMutability: "nonpayable", - virtual: false, - visibility: "private", - }, - ], - abstract: false, - baseContracts: [ - { - baseName: { - id: 12850, - name: "ERC1967Proxy", - nameLocations: ["3429:12:95"], - nodeType: "IdentifierPath", - referencedDeclaration: 12448, - src: "3429:12:95", - }, - id: 12851, - nodeType: "InheritanceSpecifier", - src: "3429:12:95", - }, - ], - canonicalName: "TransparentUpgradeableProxy", - contractDependencies: [], - contractKind: "contract", - documentation: { - id: 12849, - nodeType: "StructuredDocumentation", - src: "971:2417:95", - text: " @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler\n will not check that there are no selector conflicts, due to the note above. A selector clash between any new function\n and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could\n render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised.", - }, - fullyImplemented: true, - linearizedBaseContracts: [13137, 12448, 12752, 12401, 12804], - name: "TransparentUpgradeableProxy", - nameLocation: "3398:27:95", - scope: 13138, - usedErrors: [], - }, - ], - license: "MIT", - }, - id: 95, -} as const; diff --git a/example/src/recipient.ts b/example/src/recipient.ts index fa2a4979..8d581721 100644 --- a/example/src/recipient.ts +++ b/example/src/recipient.ts @@ -1,7 +1,7 @@ -import { Hex } from "viem"; - -import { TestRecipient } from "../abi/TestRecipient"; -import { StaticMessageIdMultisigIsmFactory } from "../abi/StaticMessageIdMultisigIsmFactory"; +import { + TestRecipient__factory, + StaticMessageIdMultisigIsmFactory__factory, +} from "@hyperlane-xyz/core"; import { CONTAINER, Dependencies } from "./ioc"; import { expectNextContractAddr, logTx } from "./utils"; @@ -24,8 +24,8 @@ async function deployTestRecipient() { // deploy test recipient { const tx = await exec.deployContract({ - abi: TestRecipient.abi, - bytecode: TestRecipient.bytecode.object as Hex, + abi: TestRecipient__factory.abi, + bytecode: TestRecipient__factory.bytecode, args: [], }); logTx("Deploy test recipient", tx); @@ -34,7 +34,7 @@ async function deployTestRecipient() { // deploy multisig ism const multisigIsmAddr = await query.readContract({ - abi: StaticMessageIdMultisigIsmFactory.abi, + abi: StaticMessageIdMultisigIsmFactory__factory.abi, address: HYP_MULTSIG_ISM_FACTORY, functionName: "getAddress", args: [[account.address], 1], @@ -43,7 +43,7 @@ async function deployTestRecipient() { { const tx = await exec.writeContract({ - abi: StaticMessageIdMultisigIsmFactory.abi, + abi: StaticMessageIdMultisigIsmFactory__factory.abi, address: HYP_MULTSIG_ISM_FACTORY, functionName: "deploy", args: [[account.address], 1], @@ -57,7 +57,7 @@ async function deployTestRecipient() { console.log(`Setting ism of test recipient to "${multisigIsmAddr.green}"...`); { const tx = await exec.writeContract({ - abi: TestRecipient.abi, + abi: TestRecipient__factory.abi, address: testRecipientAddr, functionName: "setInterchainSecurityModule", args: [multisigIsmAddr], diff --git a/example/src/warp.ts b/example/src/warp.ts index 65ca7f34..f4ce19f4 100644 --- a/example/src/warp.ts +++ b/example/src/warp.ts @@ -1,7 +1,7 @@ import { Command } from "commander"; -import { Hex, isAddress, parseEther } from "viem"; +import { isAddress } from "viem"; -import { HypERC20 } from "../abi/HypERC20"; +import { HypERC20__factory } from "@hyperlane-xyz/core"; import { HYP_MAILBOX } from "./constants"; import { CONTAINER, Dependencies } from "./ioc"; @@ -43,8 +43,8 @@ async function deployWarpRoute() { { const tx = await exec.deployContract({ - abi: HypERC20.abi, - bytecode: HypERC20.bytecode.object as Hex, + abi: HypERC20__factory.abi, + bytecode: HypERC20__factory.bytecode, args: [6, HYP_MAILBOX], }); logTx("Deploying HypERC20Osmo", tx); @@ -53,7 +53,7 @@ async function deployWarpRoute() { { const tx = await exec.writeContract({ - abi: HypERC20.abi, + abi: HypERC20__factory.abi, address: hypErc20OsmoAddr, functionName: "initialize", args: [0n, "Hyperlane Bridged Osmosis", "OSMO"], @@ -77,7 +77,7 @@ async function linkWarpRoute(warp: string, domain: string, route: string) { if (!isAddress(warp)) throw new Error("Invalid warp address"); const tx = await exec.writeContract({ - abi: HypERC20.abi, + abi: HypERC20__factory.abi, address: warp, functionName: "enrollRemoteRouter", args: [parseInt(domain), `0x${extractByte32AddrFromBech32(route)}`], @@ -94,7 +94,7 @@ async function transferWarpRoute(warp: string, domain: string, to: string) { if (!isAddress(warp)) throw new Error("Invalid warp address"); const tx = await exec.writeContract({ - abi: HypERC20.abi, + abi: HypERC20__factory.abi, address: warp, functionName: "transferRemote", args: [ diff --git a/package.json b/package.json index 71c0ee3e..9e030a02 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@cosmjs/proto-signing": "^0.32.2", "@cosmjs/stargate": "^0.32.2", "@cosmjs/tendermint-rpc": "^0.32.2", + "@hyperlane-xyz/core": "^3.7.0", "axios": "^1.6.7", "colors": "^1.4.0", "commander": "^11.1.0", diff --git a/yarn.lock b/yarn.lock index df52e9f6..d1bb3619 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1369,7 +1369,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.23.4, @babel/runtime@npm:^7.8.4": version: 7.23.9 resolution: "@babel/runtime@npm:7.23.9" dependencies: @@ -1502,6 +1502,17 @@ __metadata: languageName: node linkType: hard +"@cosmjs/encoding@npm:^0.31.3": + version: 0.31.3 + resolution: "@cosmjs/encoding@npm:0.31.3" + dependencies: + base64-js: "npm:^1.3.0" + bech32: "npm:^1.1.4" + readonly-date: "npm:^1.0.0" + checksum: 10c0/48eb9f9259bdfd88db280b6b5ea970fd1b3b0f81a8f4253f315ff2c736b27dbe0fdf74405c52ad35fcd4b16f1fde4250c4de936997b9d92e79cb97d98cc538c7 + languageName: node + linkType: hard + "@cosmjs/encoding@npm:^0.32.2": version: 0.32.2 resolution: "@cosmjs/encoding@npm:0.32.2" @@ -1971,6 +1982,473 @@ __metadata: languageName: node linkType: hard +"@eth-optimism/contracts@npm:^0.6.0": + version: 0.6.0 + resolution: "@eth-optimism/contracts@npm:0.6.0" + dependencies: + "@eth-optimism/core-utils": "npm:0.12.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + peerDependencies: + ethers: ^5 + checksum: 10c0/c000e6fd944a6b3aed97071b75a1e9f35f6d245ecca90bbb84bce5f489de522bf199e8f1fb28c1ae72fcc789a0c6fdae6e144ee47427e1e1c0ac08df9b03011c + languageName: node + linkType: hard + +"@eth-optimism/core-utils@npm:0.12.0": + version: 0.12.0 + resolution: "@eth-optimism/core-utils@npm:0.12.0" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/contracts": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/providers": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + bufio: "npm:^1.0.7" + chai: "npm:^4.3.4" + checksum: 10c0/d9ef647b9e858adf9b6f4aa4804d4321dc3c710c5141005695154bdaac3a8472b5a5ab6a02e673e475d254b8236e70e664305b6337729223a611597dc43988b4 + languageName: node + linkType: hard + +"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abi@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916 + languageName: node + linkType: hard + +"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-provider@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + checksum: 10c0/a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224 + languageName: node + linkType: hard + +"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-signer@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 10c0/e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745 + languageName: node + linkType: hard + +"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/address@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + checksum: 10c0/db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908 + languageName: node + linkType: hard + +"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/base64@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + checksum: 10c0/4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e + languageName: node + linkType: hard + +"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/basex@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 10c0/02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d + languageName: node + linkType: hard + +"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bignumber@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + checksum: 10c0/14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2 + languageName: node + linkType: hard + +"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bytes@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f + languageName: node + linkType: hard + +"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/constants@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + checksum: 10c0/6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273 + languageName: node + linkType: hard + +"@ethersproject/contracts@npm:5.7.0, @ethersproject/contracts@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/contracts@npm:5.7.0" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + checksum: 10c0/97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41 + languageName: node + linkType: hard + +"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hash@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef + languageName: node + linkType: hard + +"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hdnode@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 10c0/36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d + languageName: node + linkType: hard + +"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/json-wallets@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + aes-js: "npm:3.0.0" + scrypt-js: "npm:3.0.1" + checksum: 10c0/f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb + languageName: node + linkType: hard + +"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/keccak256@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + js-sha3: "npm:0.8.0" + checksum: 10c0/3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033 + languageName: node + linkType: hard + +"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/logger@npm:5.7.0" + checksum: 10c0/d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501 + languageName: node + linkType: hard + +"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0 + languageName: node + linkType: hard + +"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/pbkdf2@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + checksum: 10c0/e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5 + languageName: node + linkType: hard + +"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/properties@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373 + languageName: node + linkType: hard + +"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.7.0": + version: 5.7.2 + resolution: "@ethersproject/providers@npm:5.7.2" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + bech32: "npm:1.1.4" + ws: "npm:7.4.6" + checksum: 10c0/4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c + languageName: node + linkType: hard + +"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/random@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b + languageName: node + linkType: hard + +"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/rlp@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044 + languageName: node + linkType: hard + +"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/sha2@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + hash.js: "npm:1.1.7" + checksum: 10c0/0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1 + languageName: node + linkType: hard + +"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/signing-key@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + elliptic: "npm:6.5.4" + hash.js: "npm:1.1.7" + checksum: 10c0/fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09 + languageName: node + linkType: hard + +"@ethersproject/solidity@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/solidity@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6 + languageName: node + linkType: hard + +"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/strings@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1 + languageName: node + linkType: hard + +"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/transactions@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + checksum: 10c0/aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239 + languageName: node + linkType: hard + +"@ethersproject/units@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/units@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e + languageName: node + linkType: hard + +"@ethersproject/wallet@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/wallet@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/json-wallets": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 10c0/f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c + languageName: node + linkType: hard + +"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" + dependencies: + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453 + languageName: node + linkType: hard + +"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/wordlists@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70 + languageName: node + linkType: hard + +"@hyperlane-xyz/core@npm:^3.7.0": + version: 3.7.0 + resolution: "@hyperlane-xyz/core@npm:3.7.0" + dependencies: + "@eth-optimism/contracts": "npm:^0.6.0" + "@hyperlane-xyz/utils": "npm:3.7.0" + "@openzeppelin/contracts": "npm:^4.9.3" + "@openzeppelin/contracts-upgradeable": "npm:^v4.9.3" + peerDependencies: + "@ethersproject/abi": "*" + "@ethersproject/providers": "*" + "@types/sinon-chai": "*" + checksum: 10c0/195b4fec90e801136f74625a4fbc006a0cbc696740bdb7b0757ad0e58e6bbc22c0482a04340f8e2d9e64a30b22b2b2949f445af9aa16f86fddcba58370b0eebe + languageName: node + linkType: hard + +"@hyperlane-xyz/utils@npm:3.7.0": + version: 3.7.0 + resolution: "@hyperlane-xyz/utils@npm:3.7.0" + dependencies: + "@cosmjs/encoding": "npm:^0.31.3" + "@solana/web3.js": "npm:^1.78.0" + bignumber.js: "npm:^9.1.1" + ethers: "npm:^5.7.2" + checksum: 10c0/d1118e6b86a21a141ee73ff02aae3a4ab81108fd75a416d4836f4f3912088616f058a7c124f0a0199cdf654f1b4d5ddf5602c99357e1bc643eb0eab91e1fd028 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2121,6 +2599,7 @@ __metadata: "@cosmjs/stargate": "npm:^0.32.2" "@cosmjs/tendermint-rpc": "npm:^0.32.2" "@cosmwasm/ts-codegen": "npm:^0.35.7" + "@hyperlane-xyz/core": "npm:^3.7.0" "@types/decompress": "npm:^4.2.7" "@types/js-yaml": "npm:^4.0.8" "@types/node": "npm:^20.11.20" @@ -2149,6 +2628,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:^1.2.0": + version: 1.3.0 + resolution: "@noble/curves@npm:1.3.0" + dependencies: + "@noble/hashes": "npm:1.3.3" + checksum: 10c0/704bf8fda8e1365a9bb9e9945bd06645ef4ce85aa2fac5594abe09f19889197518152319481b89a271e0ee011787bd2ee87202441500bca7ca587a2c3ac10b01 + languageName: node + linkType: hard + "@noble/hashes@npm:1.3.2": version: 1.3.2 resolution: "@noble/hashes@npm:1.3.2" @@ -2156,7 +2644,7 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:^1, @noble/hashes@npm:^1.0.0, @noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.2": +"@noble/hashes@npm:1.3.3, @noble/hashes@npm:^1, @noble/hashes@npm:^1.0.0, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.2": version: 1.3.3 resolution: "@noble/hashes@npm:1.3.3" checksum: 10c0/23c020b33da4172c988e44100e33cd9f8f6250b68b43c467d3551f82070ebd9716e0d9d2347427aa3774c85934a35fa9ee6f026fca2117e3fa12db7bedae7668 @@ -2185,6 +2673,20 @@ __metadata: languageName: node linkType: hard +"@openzeppelin/contracts-upgradeable@npm:^v4.9.3": + version: 4.9.5 + resolution: "@openzeppelin/contracts-upgradeable@npm:4.9.5" + checksum: 10c0/0aa3ff3b776718d78ea82071dbc3b9fa93051d8d2d421da9765eb0ea3918615e6bc426facfe340b640e60c3bacb111f90067c3e4924cb6b67b166d062b73a654 + languageName: node + linkType: hard + +"@openzeppelin/contracts@npm:^4.9.3": + version: 4.9.5 + resolution: "@openzeppelin/contracts@npm:4.9.5" + checksum: 10c0/bf5b38320c09f33ecbd7bbf5f6dc8a3a94d3771ee4a1c0dcfc517c05bd03f61b3b3cb263c608e323780994b7686a21fdce2674ca5d127674c3292e5578335032 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -2335,6 +2837,38 @@ __metadata: languageName: node linkType: hard +"@solana/buffer-layout@npm:^4.0.1": + version: 4.0.1 + resolution: "@solana/buffer-layout@npm:4.0.1" + dependencies: + buffer: "npm:~6.0.3" + checksum: 10c0/6535f3908cf6dfc405b665795f0c2eaa0482a8c6b1811403945cf7b450e7eb7b40acce3e8af046f2fcc3eea1a15e61d48c418315d813bee4b720d56b00053305 + languageName: node + linkType: hard + +"@solana/web3.js@npm:^1.78.0": + version: 1.90.0 + resolution: "@solana/web3.js@npm:1.90.0" + dependencies: + "@babel/runtime": "npm:^7.23.4" + "@noble/curves": "npm:^1.2.0" + "@noble/hashes": "npm:^1.3.2" + "@solana/buffer-layout": "npm:^4.0.1" + agentkeepalive: "npm:^4.5.0" + bigint-buffer: "npm:^1.1.5" + bn.js: "npm:^5.2.1" + borsh: "npm:^0.7.0" + bs58: "npm:^4.0.1" + buffer: "npm:6.0.3" + fast-stable-stringify: "npm:^1.0.0" + jayson: "npm:^4.1.0" + node-fetch: "npm:^2.7.0" + rpc-websockets: "npm:^7.5.1" + superstruct: "npm:^0.14.2" + checksum: 10c0/353af37d18733557df289ff3c7d9a11698529fc953664005049a159dbe63ca626f1434b91ea4c8261cb6c20edcd6d4103d19acbfc75c640229789004f3bfe14b + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -2363,6 +2897,15 @@ __metadata: languageName: node linkType: hard +"@types/connect@npm:^3.4.33": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + languageName: node + linkType: hard + "@types/decompress@npm:^4.2.7": version: 4.2.7 resolution: "@types/decompress@npm:4.2.7" @@ -2460,6 +3003,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^12.12.54": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 + languageName: node + linkType: hard + "@types/prettier@npm:^2.6.1": version: 2.7.3 resolution: "@types/prettier@npm:2.7.3" @@ -2467,6 +3017,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^7.4.4": + version: 7.4.7 + resolution: "@types/ws@npm:7.4.7" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1f53febd8623a85cef2652949acd19d83967e350ea15a851593e3033501750a1e04f418552e487db90a3d48611a1cff3ffcf139b94190c10f2fd1e1dc95ff10 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.3 resolution: "@types/yargs-parser@npm:21.0.3" @@ -2483,6 +3042,18 @@ __metadata: languageName: node linkType: hard +"JSONStream@npm:^1.3.5": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: "npm:^1.2.0" + through: "npm:>=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -2521,6 +3092,13 @@ __metadata: languageName: node linkType: hard +"aes-js@npm:3.0.0": + version: 3.0.0 + resolution: "aes-js@npm:3.0.0" + checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8 + languageName: node + linkType: hard + "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": version: 7.1.0 resolution: "agent-base@npm:7.1.0" @@ -2530,6 +3108,15 @@ __metadata: languageName: node linkType: hard +"agentkeepalive@npm:^4.5.0": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: "npm:^1.2.1" + checksum: 10c0/394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 + languageName: node + linkType: hard + "aggregate-error@npm:^3.0.0": version: 3.1.0 resolution: "aggregate-error@npm:3.1.0" @@ -2661,6 +3248,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b + languageName: node + linkType: hard + "ast-stringify@npm:0.1.0": version: 0.1.0 resolution: "ast-stringify@npm:0.1.0" @@ -2744,6 +3338,15 @@ __metadata: languageName: node linkType: hard +"base-x@npm:^3.0.2": + version: 3.0.9 + resolution: "base-x@npm:3.0.9" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a + languageName: node + linkType: hard + "base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -2751,13 +3354,39 @@ __metadata: languageName: node linkType: hard -"bech32@npm:^1.1.4": +"bech32@npm:1.1.4, bech32@npm:^1.1.4": version: 1.1.4 resolution: "bech32@npm:1.1.4" checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5 languageName: node linkType: hard +"bigint-buffer@npm:^1.1.5": + version: 1.1.5 + resolution: "bigint-buffer@npm:1.1.5" + dependencies: + bindings: "npm:^1.3.0" + node-gyp: "npm:latest" + checksum: 10c0/aa41e53d38242a2f05f85b08eaf592635f92e5328822784cda518232b1644efdbf29ab3664951b174cc645848add4605488e25c9439bcc749660c885b4ff6118 + languageName: node + linkType: hard + +"bignumber.js@npm:^9.1.1": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d + languageName: node + linkType: hard + +"bindings@npm:^1.3.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: "npm:1.0.0" + checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba + languageName: node + linkType: hard + "bl@npm:^1.0.0": version: 1.2.3 resolution: "bl@npm:1.2.3" @@ -2775,13 +3404,24 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^5.2.0": +"bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa languageName: node linkType: hard +"borsh@npm:^0.7.0": + version: 0.7.0 + resolution: "borsh@npm:0.7.0" + dependencies: + bn.js: "npm:^5.2.0" + bs58: "npm:^4.0.0" + text-encoding-utf-8: "npm:^1.0.2" + checksum: 10c0/513b3e51823d2bf5be77cec27742419d2b0427504825dd7ceb00dedb820f246a4762f04b83d5e3aa39c8e075b3cbaeb7ca3c90bd1cbeecccb4a510575be8c581 + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2831,6 +3471,15 @@ __metadata: languageName: node linkType: hard +"bs58@npm:^4.0.0, bs58@npm:^4.0.1": + version: 4.0.1 + resolution: "bs58@npm:4.0.1" + dependencies: + base-x: "npm:^3.0.2" + checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -2878,6 +3527,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:6.0.3, buffer@npm:~6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + "buffer@npm:^5.2.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" @@ -2888,6 +3547,23 @@ __metadata: languageName: node linkType: hard +"bufferutil@npm:^4.0.1": + version: 4.0.8 + resolution: "bufferutil@npm:4.0.8" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c + languageName: node + linkType: hard + +"bufio@npm:^1.0.7": + version: 1.2.1 + resolution: "bufio@npm:1.2.1" + checksum: 10c0/4ecb21ea25b1f50dda73b9cf865ff8037d9fc92373db57dc3ffddd85e4720cc16316750f8b6b4b6fa18a6668314e786d247f6fb55948b9e38958e929dccdb675 + languageName: node + linkType: hard + "cacache@npm:^18.0.0": version: 18.0.2 resolution: "cacache@npm:18.0.2" @@ -2936,6 +3612,21 @@ __metadata: languageName: node linkType: hard +"chai@npm:^4.3.4": + version: 4.4.1 + resolution: "chai@npm:4.4.1" + dependencies: + assertion-error: "npm:^1.1.0" + check-error: "npm:^1.0.3" + deep-eql: "npm:^4.1.3" + get-func-name: "npm:^2.0.2" + loupe: "npm:^2.3.6" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.0.8" + checksum: 10c0/91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd + languageName: node + linkType: hard + "chalk@npm:^1.0.0, chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" @@ -2984,6 +3675,15 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: "npm:^2.0.2" + checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -3089,7 +3789,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.8.1": +"commander@npm:^2.20.3, commander@npm:^2.8.1": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 @@ -3250,6 +3950,15 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: "npm:^4.0.0" + checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd + languageName: node + linkType: hard + "deepmerge@npm:4.2.2": version: 4.2.2 resolution: "deepmerge@npm:4.2.2" @@ -3279,6 +3988,13 @@ __metadata: languageName: node linkType: hard +"delay@npm:^5.0.0": + version: 5.0.0 + resolution: "delay@npm:5.0.0" + checksum: 10c0/01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -3321,7 +4037,7 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:^6.5.4": +"elliptic@npm:6.5.4, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: @@ -3421,6 +4137,22 @@ __metadata: languageName: node linkType: hard +"es6-promise@npm:^4.0.3": + version: 4.2.8 + resolution: "es6-promise@npm:4.2.8" + checksum: 10c0/2373d9c5e9a93bdd9f9ed32ff5cb6dd3dd785368d1c21e9bbbfd07d16345b3774ae260f2bd24c8f836a6903f432b4151e7816a7fa8891ccb4e1a55a028ec42c3 + languageName: node + linkType: hard + +"es6-promisify@npm:^5.0.0": + version: 5.0.0 + resolution: "es6-promisify@npm:5.0.0" + dependencies: + es6-promise: "npm:^4.0.3" + checksum: 10c0/23284c6a733cbf7842ec98f41eac742c9f288a78753c4fe46652bae826446ced7615b9e8a5c5f121a08812b1cd478ea58630f3e1c3d70835bd5dcd69c7cd75c9 + languageName: node + linkType: hard + "es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": version: 3.1.3 resolution: "es6-symbol@npm:3.1.3" @@ -3643,6 +4375,44 @@ __metadata: languageName: node linkType: hard +"ethers@npm:^5.7.2": + version: 5.7.2 + resolution: "ethers@npm:5.7.2" + dependencies: + "@ethersproject/abi": "npm:5.7.0" + "@ethersproject/abstract-provider": "npm:5.7.0" + "@ethersproject/abstract-signer": "npm:5.7.0" + "@ethersproject/address": "npm:5.7.0" + "@ethersproject/base64": "npm:5.7.0" + "@ethersproject/basex": "npm:5.7.0" + "@ethersproject/bignumber": "npm:5.7.0" + "@ethersproject/bytes": "npm:5.7.0" + "@ethersproject/constants": "npm:5.7.0" + "@ethersproject/contracts": "npm:5.7.0" + "@ethersproject/hash": "npm:5.7.0" + "@ethersproject/hdnode": "npm:5.7.0" + "@ethersproject/json-wallets": "npm:5.7.0" + "@ethersproject/keccak256": "npm:5.7.0" + "@ethersproject/logger": "npm:5.7.0" + "@ethersproject/networks": "npm:5.7.1" + "@ethersproject/pbkdf2": "npm:5.7.0" + "@ethersproject/properties": "npm:5.7.0" + "@ethersproject/providers": "npm:5.7.2" + "@ethersproject/random": "npm:5.7.0" + "@ethersproject/rlp": "npm:5.7.0" + "@ethersproject/sha2": "npm:5.7.0" + "@ethersproject/signing-key": "npm:5.7.0" + "@ethersproject/solidity": "npm:5.7.0" + "@ethersproject/strings": "npm:5.7.0" + "@ethersproject/transactions": "npm:5.7.0" + "@ethersproject/units": "npm:5.7.0" + "@ethersproject/wallet": "npm:5.7.0" + "@ethersproject/web": "npm:5.7.1" + "@ethersproject/wordlists": "npm:5.7.0" + checksum: 10c0/90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962 + languageName: node + linkType: hard + "event-emitter@npm:^0.3.5": version: 0.3.5 resolution: "event-emitter@npm:0.3.5" @@ -3653,6 +4423,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^4.0.7": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 10c0/5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -3691,6 +4468,13 @@ __metadata: languageName: node linkType: hard +"eyes@npm:^0.1.8": + version: 0.1.8 + resolution: "eyes@npm:0.1.8" + checksum: 10c0/4c79a9cbf45746d8c9f48cc957e35ad8ea336add1c7b8d5a0e002efc791a7a62b27b2188184ef1a1eea7bc3cd06b161791421e0e6c5fe78309705a162c53eea8 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -3698,6 +4482,13 @@ __metadata: languageName: node linkType: hard +"fast-stable-stringify@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-stable-stringify@npm:1.0.0" + checksum: 10c0/1d773440c7a9615950577665074746c2e92edafceefa789616ecb6166229e0ccc6dae206ca9b9f7da0d274ba5779162aab2d07940a0f6e52a41a4e555392eb3b + languageName: node + linkType: hard + "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -3746,6 +4537,13 @@ __metadata: languageName: node linkType: hard +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -3868,6 +4666,13 @@ __metadata: languageName: node linkType: hard +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df + languageName: node + linkType: hard + "get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" @@ -4045,7 +4850,7 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -4102,6 +4907,15 @@ __metadata: languageName: node linkType: hard +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: "npm:^2.0.0" + checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a + languageName: node + linkType: hard + "iconv-lite@npm:^0.4.17, iconv-lite@npm:^0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -4120,7 +4934,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb @@ -4404,6 +5218,28 @@ __metadata: languageName: node linkType: hard +"jayson@npm:^4.1.0": + version: 4.1.0 + resolution: "jayson@npm:4.1.0" + dependencies: + "@types/connect": "npm:^3.4.33" + "@types/node": "npm:^12.12.54" + "@types/ws": "npm:^7.4.4" + JSONStream: "npm:^1.3.5" + commander: "npm:^2.20.3" + delay: "npm:^5.0.0" + es6-promisify: "npm:^5.0.0" + eyes: "npm:^0.1.8" + isomorphic-ws: "npm:^4.0.1" + json-stringify-safe: "npm:^5.0.1" + uuid: "npm:^8.3.2" + ws: "npm:^7.4.5" + bin: + jayson: bin/jayson.js + checksum: 10c0/1b3a642eab65e7c07be45d6b9c08c1713348ed71454e37536f479400eb6c7257061fab74430d4677d1cedbed18db8fe8370202f0b52fac87d9c7af1140aa293d + languageName: node + linkType: hard + "jest-haste-map@npm:^28.1.3": version: 28.1.3 resolution: "jest-haste-map@npm:28.1.3" @@ -4459,6 +5295,13 @@ __metadata: languageName: node linkType: hard +"js-sha3@npm:0.8.0": + version: 0.8.0 + resolution: "js-sha3@npm:0.8.0" + checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533 + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -4503,6 +5346,13 @@ __metadata: languageName: node linkType: hard +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + "json5@npm:^2.2.1, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -4512,6 +5362,13 @@ __metadata: languageName: node linkType: hard +"jsonparse@npm:^1.2.0": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 + languageName: node + linkType: hard + "libsodium-sumo@npm:^0.7.13": version: 0.7.13 resolution: "libsodium-sumo@npm:0.7.13" @@ -4565,6 +5422,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^2.3.6": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.2.0 resolution: "lru-cache@npm:10.2.0" @@ -4865,6 +5731,13 @@ __metadata: languageName: node linkType: hard +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + "mute-stream@npm:0.0.7": version: 0.0.7 resolution: "mute-stream@npm:0.0.7" @@ -4897,6 +5770,31 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.7.0": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.3.0": + version: 4.8.0 + resolution: "node-gyp-build@npm:4.8.0" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10c0/85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" @@ -5074,6 +5972,13 @@ __metadata: languageName: node linkType: hard +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -5366,6 +6271,25 @@ __metadata: languageName: node linkType: hard +"rpc-websockets@npm:^7.5.1": + version: 7.9.0 + resolution: "rpc-websockets@npm:7.9.0" + dependencies: + "@babel/runtime": "npm:^7.17.2" + bufferutil: "npm:^4.0.1" + eventemitter3: "npm:^4.0.7" + utf-8-validate: "npm:^5.0.2" + uuid: "npm:^8.3.2" + ws: "npm:^8.5.0" + dependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/f614b4e79fee18a93228868d7b0cd15ab1dd26f56deddd7a2191432a744f771dad57ba2c217a8d4d596c565b4aa524637fce0a0163fea6151df8fc002f0a3207 + languageName: node + linkType: hard + "run-async@npm:^2.2.0, run-async@npm:^2.3.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -5398,7 +6322,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.1.1": +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -5419,6 +6343,13 @@ __metadata: languageName: node linkType: hard +"scrypt-js@npm:3.0.1": + version: 3.0.1 + resolution: "scrypt-js@npm:3.0.1" + checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 + languageName: node + linkType: hard + "seek-bzip@npm:^1.0.5": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" @@ -5664,6 +6595,13 @@ __metadata: languageName: node linkType: hard +"superstruct@npm:^0.14.2": + version: 0.14.2 + resolution: "superstruct@npm:0.14.2" + checksum: 10c0/e5518f6701524fb8cbae504a84dc9c304bf3fe01616230a5eb4e14af9bfc4e3518b94bfe457e57a5d1b99a2b54f82881b4a39e0b266caa6053f84aa294613b94 + languageName: node + linkType: hard + "supports-color@npm:^2.0.0": version: 2.0.0 resolution: "supports-color@npm:2.0.0" @@ -5752,6 +6690,13 @@ __metadata: languageName: node linkType: hard +"text-encoding-utf-8@npm:^1.0.2": + version: 1.0.2 + resolution: "text-encoding-utf-8@npm:1.0.2" + checksum: 10c0/87a64b394c850e8387c2ca7fc6929a26ce97fb598f1c55cd0fdaec4b8e2c3ed6770f65b2f3309c9175ef64ac5e403c8e48b53ceeb86d2897940c5e19cc00bb99 + languageName: node + linkType: hard + "thenify-all@npm:^1.0.0": version: 1.6.0 resolution: "thenify-all@npm:1.6.0" @@ -5770,7 +6715,7 @@ __metadata: languageName: node linkType: hard -"through@npm:^2.3.6, through@npm:^2.3.8": +"through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -5826,6 +6771,13 @@ __metadata: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + "ts-node@npm:^10.9.1": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -5916,6 +6868,13 @@ __metadata: languageName: node linkType: hard +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd + languageName: node + linkType: hard + "type@npm:^1.0.1": version: 1.2.0 resolution: "type@npm:1.2.0" @@ -6030,6 +6989,16 @@ __metadata: languageName: node linkType: hard +"utf-8-validate@npm:^5.0.2": + version: 5.0.10 + resolution: "utf-8-validate@npm:5.0.10" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f + languageName: node + linkType: hard + "util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -6046,6 +7015,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -6097,6 +7075,23 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -6158,6 +7153,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:7.4.6": + version: 7.4.6 + resolution: "ws@npm:7.4.6" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e + languageName: node + linkType: hard + "ws@npm:8.13.0": version: 8.13.0 resolution: "ws@npm:8.13.0" @@ -6173,7 +7183,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7": +"ws@npm:^7, ws@npm:^7.4.5": version: 7.5.9 resolution: "ws@npm:7.5.9" peerDependencies: @@ -6188,6 +7198,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.5.0": + version: 8.16.0 + resolution: "ws@npm:8.16.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a + languageName: node + linkType: hard + "xstream@npm:^11.14.0": version: 11.14.0 resolution: "xstream@npm:11.14.0"