@zoralabs/openzeppelin-contracts-upgradeable
Version:
Secure Smart Contract library for Solidity
161 lines (160 loc) • 21.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MinimalForwarderUpgradeable",
"sourceName": "contracts/metatx/MinimalForwarderUpgradeable.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "gas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"internalType": "struct MinimalForwarderUpgradeable.ForwardRequest",
"name": "req",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "execute",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "gas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"internalType": "struct MinimalForwarderUpgradeable.ForwardRequest",
"name": "req",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"name": "verify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061112b806100206000396000f3fe6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610076578063bf5d3bdb146100a7575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b91906108a0565b6100e4565b60405161006d91906108e6565b60405180910390f35b610090600480360381019061008b919061098a565b61012d565b60405161009e929190610aba565b60405180910390f35b3480156100b357600080fd5b506100ce60048036038101906100c9919061098a565b6102d9565b6040516100db9190610aea565b60405180910390f35b6000603560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000606061013c8585856102d9565b61017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017290610b88565b60405180910390fd5b6001856080013561018c9190610bd7565b603560008760000160208101906101a391906108a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808660200160208101906101f791906108a0565b73ffffffffffffffffffffffffffffffffffffffff1687606001358860400135898060a001906102279190610c3c565b8b600001602081019061023a91906108a0565b60405160200161024c93929190610d26565b6040516020818303038152906040526040516102689190610d81565b600060405180830381858888f193505050503d80600081146102a6576040519150601f19603f3d011682016040523d82523d6000602084013e6102ab565b606091505b5091509150603f87606001356102c19190610dc7565b5a116102c957fe5b8181935093505050935093915050565b6000806103e284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506103d47fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4888600001602081019061035b91906108a0565b89602001602081019061036e91906108a0565b8a604001358b606001358c608001358d8060a0019061038d9190610c3c565b60405161039b929190610df8565b60405180910390206040516020016103b99796959493929190610e39565b6040516020818303038152906040528051906020012061048f565b6104a990919063ffffffff16565b905084608001356035600087600001602081019061040091906108a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015610485575084600001602081019061045691906108a0565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b9150509392505050565b60006104a261049c6104d0565b83610510565b9050919050565b60008060006104b88585610551565b915091506104c5816105a2565b819250505092915050565b600061050b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6104fe610708565b610506610712565b61071c565b905090565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060418351036105925760008060006020860151925060408601519150606086015160001a905061058687828585610756565b9450945050505061059b565b60006002915091505b9250929050565b600060048111156105b6576105b5610ea8565b5b8160048111156105c9576105c8610ea8565b5b031561070557600160048111156105e3576105e2610ea8565b5b8160048111156105f6576105f5610ea8565b5b03610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d90610f23565b60405180910390fd5b6002600481111561064a57610649610ea8565b5b81600481111561065d5761065c610ea8565b5b0361069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069490610f8f565b60405180910390fd5b600360048111156106b1576106b0610ea8565b5b8160048111156106c4576106c3610ea8565b5b03610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90611021565b60405180910390fd5b5b50565b6000600154905090565b6000600254905090565b60008383834630604051602001610737959493929190611041565b6040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561079157600060039150915061082f565b6000600187878787604051600081526020016040526040516107b694939291906110b0565b6020604051602081039080840390855afa1580156107d8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108265760006001925092505061082f565b80600092509250505b94509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061086d82610842565b9050919050565b61087d81610862565b811461088857600080fd5b50565b60008135905061089a81610874565b92915050565b6000602082840312156108b6576108b5610838565b5b60006108c48482850161088b565b91505092915050565b6000819050919050565b6108e0816108cd565b82525050565b60006020820190506108fb60008301846108d7565b92915050565b600080fd5b600060c0828403121561091c5761091b610901565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261094a57610949610925565b5b8235905067ffffffffffffffff8111156109675761096661092a565b5b6020830191508360018202830111156109835761098261092f565b5b9250929050565b6000806000604084860312156109a3576109a2610838565b5b600084013567ffffffffffffffff8111156109c1576109c061083d565b5b6109cd86828701610906565b935050602084013567ffffffffffffffff8111156109ee576109ed61083d565b5b6109fa86828701610934565b92509250509250925092565b60008115159050919050565b610a1b81610a06565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a5b578082015181840152602081019050610a40565b83811115610a6a576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a8c82610a21565b610a968185610a2c565b9350610aa6818560208601610a3d565b610aaf81610a70565b840191505092915050565b6000604082019050610acf6000830185610a12565b8181036020830152610ae18184610a81565b90509392505050565b6000602082019050610aff6000830184610a12565b92915050565b600082825260208201905092915050565b7f4d696e696d616c466f727761726465723a207369676e617475726520646f657360008201527f206e6f74206d6174636820726571756573740000000000000000000000000000602082015250565b6000610b72603283610b05565b9150610b7d82610b16565b604082019050919050565b60006020820190508181036000830152610ba181610b65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610be2826108cd565b9150610bed836108cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c2257610c21610ba8565b5b828201905092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610c5957610c58610c2d565b5b80840192508235915067ffffffffffffffff821115610c7b57610c7a610c32565b5b602083019250600182023603831315610c9757610c96610c37565b5b509250929050565b600081905092915050565b82818337600083830152505050565b6000610cc58385610c9f565b9350610cd2838584610caa565b82840190509392505050565b60008160601b9050919050565b6000610cf682610cde565b9050919050565b6000610d0882610ceb565b9050919050565b610d20610d1b82610862565b610cfd565b82525050565b6000610d33828587610cb9565b9150610d3f8284610d0f565b601482019150819050949350505050565b6000610d5b82610a21565b610d658185610c9f565b9350610d75818560208601610a3d565b80840191505092915050565b6000610d8d8284610d50565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610dd2826108cd565b9150610ddd836108cd565b925082610ded57610dec610d98565b5b828204905092915050565b6000610e05828486610cb9565b91508190509392505050565b6000819050919050565b610e2481610e11565b82525050565b610e3381610862565b82525050565b600060e082019050610e4e600083018a610e1b565b610e5b6020830189610e2a565b610e686040830188610e2a565b610e7560608301876108d7565b610e8260808301866108d7565b610e8f60a08301856108d7565b610e9c60c0830184610e1b565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000610f0d601883610b05565b9150610f1882610ed7565b602082019050919050565b60006020820190508181036000830152610f3c81610f00565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000610f79601f83610b05565b9150610f8482610f43565b602082019050919050565b60006020820190508181036000830152610fa881610f6c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061100b602283610b05565b915061101682610faf565b604082019050919050565b6000602082019050818103600083015261103a81610ffe565b9050919050565b600060a0820190506110566000830188610e1b565b6110636020830187610e1b565b6110706040830186610e1b565b61107d60608301856108d7565b61108a6080830184610e2a565b9695505050505050565b600060ff82169050919050565b6110aa81611094565b82525050565b60006080820190506110c56000830187610e1b565b6110d260208301866110a1565b6110df6040830185610e1b565b6110ec6060830184610e1b565b9594505050505056fea26469706673582212205bee79c90f622ab7adc42d043dba8d0f7d89d2ba447614f838c5aaf230b5c5d164736f6c634300080d0033",
"deployedBytecode": "0x6080604052600436106100345760003560e01c80632d0335ab1461003957806347153f8214610076578063bf5d3bdb146100a7575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b91906108a0565b6100e4565b60405161006d91906108e6565b60405180910390f35b610090600480360381019061008b919061098a565b61012d565b60405161009e929190610aba565b60405180910390f35b3480156100b357600080fd5b506100ce60048036038101906100c9919061098a565b6102d9565b6040516100db9190610aea565b60405180910390f35b6000603560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000606061013c8585856102d9565b61017b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017290610b88565b60405180910390fd5b6001856080013561018c9190610bd7565b603560008760000160208101906101a391906108a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808660200160208101906101f791906108a0565b73ffffffffffffffffffffffffffffffffffffffff1687606001358860400135898060a001906102279190610c3c565b8b600001602081019061023a91906108a0565b60405160200161024c93929190610d26565b6040516020818303038152906040526040516102689190610d81565b600060405180830381858888f193505050503d80600081146102a6576040519150601f19603f3d011682016040523d82523d6000602084013e6102ab565b606091505b5091509150603f87606001356102c19190610dc7565b5a116102c957fe5b8181935093505050935093915050565b6000806103e284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506103d47fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4888600001602081019061035b91906108a0565b89602001602081019061036e91906108a0565b8a604001358b606001358c608001358d8060a0019061038d9190610c3c565b60405161039b929190610df8565b60405180910390206040516020016103b99796959493929190610e39565b6040516020818303038152906040528051906020012061048f565b6104a990919063ffffffff16565b905084608001356035600087600001602081019061040091906108a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015610485575084600001602081019061045691906108a0565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b9150509392505050565b60006104a261049c6104d0565b83610510565b9050919050565b60008060006104b88585610551565b915091506104c5816105a2565b819250505092915050565b600061050b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6104fe610708565b610506610712565b61071c565b905090565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060418351036105925760008060006020860151925060408601519150606086015160001a905061058687828585610756565b9450945050505061059b565b60006002915091505b9250929050565b600060048111156105b6576105b5610ea8565b5b8160048111156105c9576105c8610ea8565b5b031561070557600160048111156105e3576105e2610ea8565b5b8160048111156105f6576105f5610ea8565b5b03610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d90610f23565b60405180910390fd5b6002600481111561064a57610649610ea8565b5b81600481111561065d5761065c610ea8565b5b0361069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069490610f8f565b60405180910390fd5b600360048111156106b1576106b0610ea8565b5b8160048111156106c4576106c3610ea8565b5b03610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90611021565b60405180910390fd5b5b50565b6000600154905090565b6000600254905090565b60008383834630604051602001610737959493929190611041565b6040516020818303038152906040528051906020012090509392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561079157600060039150915061082f565b6000600187878787604051600081526020016040526040516107b694939291906110b0565b6020604051602081039080840390855afa1580156107d8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108265760006001925092505061082f565b80600092509250505b94509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061086d82610842565b9050919050565b61087d81610862565b811461088857600080fd5b50565b60008135905061089a81610874565b92915050565b6000602082840312156108b6576108b5610838565b5b60006108c48482850161088b565b91505092915050565b6000819050919050565b6108e0816108cd565b82525050565b60006020820190506108fb60008301846108d7565b92915050565b600080fd5b600060c0828403121561091c5761091b610901565b5b81905092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261094a57610949610925565b5b8235905067ffffffffffffffff8111156109675761096661092a565b5b6020830191508360018202830111156109835761098261092f565b5b9250929050565b6000806000604084860312156109a3576109a2610838565b5b600084013567ffffffffffffffff8111156109c1576109c061083d565b5b6109cd86828701610906565b935050602084013567ffffffffffffffff8111156109ee576109ed61083d565b5b6109fa86828701610934565b92509250509250925092565b60008115159050919050565b610a1b81610a06565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a5b578082015181840152602081019050610a40565b83811115610a6a576000848401525b50505050565b6000601f19601f8301169050919050565b6000610a8c82610a21565b610a968185610a2c565b9350610aa6818560208601610a3d565b610aaf81610a70565b840191505092915050565b6000604082019050610acf6000830185610a12565b8181036020830152610ae18184610a81565b90509392505050565b6000602082019050610aff6000830184610a12565b92915050565b600082825260208201905092915050565b7f4d696e696d616c466f727761726465723a207369676e617475726520646f657360008201527f206e6f74206d6174636820726571756573740000000000000000000000000000602082015250565b6000610b72603283610b05565b9150610b7d82610b16565b604082019050919050565b60006020820190508181036000830152610ba181610b65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610be2826108cd565b9150610bed836108cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c2257610c21610ba8565b5b828201905092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610c5957610c58610c2d565b5b80840192508235915067ffffffffffffffff821115610c7b57610c7a610c32565b5b602083019250600182023603831315610c9757610c96610c37565b5b509250929050565b600081905092915050565b82818337600083830152505050565b6000610cc58385610c9f565b9350610cd2838584610caa565b82840190509392505050565b60008160601b9050919050565b6000610cf682610cde565b9050919050565b6000610d0882610ceb565b9050919050565b610d20610d1b82610862565b610cfd565b82525050565b6000610d33828587610cb9565b9150610d3f8284610d0f565b601482019150819050949350505050565b6000610d5b82610a21565b610d658185610c9f565b9350610d75818560208601610a3d565b80840191505092915050565b6000610d8d8284610d50565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610dd2826108cd565b9150610ddd836108cd565b925082610ded57610dec610d98565b5b828204905092915050565b6000610e05828486610cb9565b91508190509392505050565b6000819050919050565b610e2481610e11565b82525050565b610e3381610862565b82525050565b600060e082019050610e4e600083018a610e1b565b610e5b6020830189610e2a565b610e686040830188610e2a565b610e7560608301876108d7565b610e8260808301866108d7565b610e8f60a08301856108d7565b610e9c60c0830184610e1b565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000610f0d601883610b05565b9150610f1882610ed7565b602082019050919050565b60006020820190508181036000830152610f3c81610f00565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000610f79601f83610b05565b9150610f8482610f43565b602082019050919050565b60006020820190508181036000830152610fa881610f6c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061100b602283610b05565b915061101682610faf565b604082019050919050565b6000602082019050818103600083015261103a81610ffe565b9050919050565b600060a0820190506110566000830188610e1b565b6110636020830187610e1b565b6110706040830186610e1b565b61107d60608301856108d7565b61108a6080830184610e2a565b9695505050505050565b600060ff82169050919050565b6110aa81611094565b82525050565b60006080820190506110c56000830187610e1b565b6110d260208301866110a1565b6110df6040830185610e1b565b6110ec6060830184610e1b565b9594505050505056fea26469706673582212205bee79c90f622ab7adc42d043dba8d0f7d89d2ba447614f838c5aaf230b5c5d164736f6c634300080d0033",
"linkReferences": {},
"deployedLinkReferences": {}
}