{
  "_format": "hh-sol-artifact-1",
  "contractName": "MinimalForwarderUpgradeable",
  "sourceName": "contracts/metatx/MinimalForwarderUpgradeable.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [],
      "name": "EIP712DomainChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "eip712Domain",
      "outputs": [
        {
          "internalType": "bytes1",
          "name": "fields",
          "type": "bytes1"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "version",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "verifyingContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[]",
          "name": "extensions",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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": "0x608060405234801561001057600080fd5b50610c63806100206000396000f3fe60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461008d57806384b0196e146100ae578063bf5d3bdb146100d6575b600080fd5b34801561005057600080fd5b5061007a61005f366004610918565b6001600160a01b031660009081526035602052604090205490565b6040519081526020015b60405180910390f35b6100a061009b366004610948565b610106565b604051610084929190610a43565b3480156100ba57600080fd5b506100c36102a0565b6040516100849796959493929190610a66565b3480156100e257600080fd5b506100f66100f1366004610948565b61033e565b6040519015158152602001610084565b6000606061011585858561033e565b6101815760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61019060808601356001610afc565b603560006101a16020890189610918565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101db9190610918565b6001600160a01b0316606088013560408901356101fb60a08b018b610b22565b61020860208d018d610918565b60405160200161021a93929190610b69565b60408051601f198184030181529082905261023491610b8f565b600060405180830381858888f193505050503d8060008114610272576040519150601f19603f3d011682016040523d82523d6000602084013e610277565b606091505b50909250905061028c603f6060890135610bab565b5a1161029457fe5b90969095509350505050565b6000606080600080600060606001546000801b1480156102c05750600254155b6103045760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610178565b61030c6104bd565b61031461054f565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60008061045184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061044b92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4891506103ae905060208a018a610918565b6103be60408b0160208c01610918565b60408b013560608c013560808d01356103da60a08f018f610b22565b6040516103e8929190610bcd565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e0810191909152610100016040516020818303038152906040528051906020012061055e565b90610591565b90506080850135603560006104696020890189610918565b6001600160a01b03166001600160a01b03168152602001908152602001600020541480156104b4575061049f6020860186610918565b6001600160a01b0316816001600160a01b0316145b95945050505050565b6060600380546104cc90610bdd565b80601f01602080910402602001604051908101604052809291908181526020018280546104f890610bdd565b80156105455780601f1061051a57610100808354040283529160200191610545565b820191906000526020600020905b81548152906001019060200180831161052857829003601f168201915b5050505050905090565b6060600480546104cc90610bdd565b600061058b61056b6105b5565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b60008060006105a085856105c4565b915091506105ad81610609565b509392505050565b60006105bf610756565b905090565b60008082516041036105fa5760208301516040840151606085015160001a6105ee878285856107ca565b94509450505050610602565b506000905060025b9250929050565b600081600481111561061d5761061d610c17565b036106255750565b600181600481111561063957610639610c17565b036106865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610178565b600281600481111561069a5761069a610c17565b036106e75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610178565b60038160048111156106fb576106fb610c17565b036107535760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610178565b50565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61078161088e565b6107896108e7565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156108015750600090506003610885565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610855573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661087e57600060019250925050610885565b9150600090505b94509492505050565b6000806108996104bd565b8051909150156108b0578051602090910120919050565b60015480156108bf5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806108f261054f565b805190915015610909578051602090910120919050565b60025480156108bf5792915050565b60006020828403121561092a57600080fd5b81356001600160a01b038116811461094157600080fd5b9392505050565b60008060006040848603121561095d57600080fd5b833567ffffffffffffffff8082111561097557600080fd5b9085019060c0828803121561098957600080fd5b9093506020850135908082111561099f57600080fd5b818601915086601f8301126109b357600080fd5b8135818111156109c257600080fd5b8760208285010111156109d457600080fd5b6020830194508093505050509250925092565b60005b83811015610a025781810151838201526020016109ea565b83811115610a11576000848401525b50505050565b60008151808452610a2f8160208601602086016109e7565b601f01601f19169290920160200192915050565b8215158152604060208201526000610a5e6040830184610a17565b949350505050565b60ff60f81b881681526000602060e081840152610a8660e084018a610a17565b8381036040850152610a98818a610a17565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610aea57835183529284019291840191600101610ace565b50909c9b505050505050505050505050565b60008219821115610b1d57634e487b7160e01b600052601160045260246000fd5b500190565b6000808335601e19843603018112610b3957600080fd5b83018035915067ffffffffffffffff821115610b5457600080fd5b60200191503681900382131561060257600080fd5b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610ba18184602087016109e7565b9190910192915050565b600082610bc857634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b600181811c90821680610bf157607f821691505b602082108103610c1157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212204510d2e590432bdfca0c349baed747d13ba342a7e6c4e6f1221a6d886946d8b064736f6c634300080d0033",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461008d57806384b0196e146100ae578063bf5d3bdb146100d6575b600080fd5b34801561005057600080fd5b5061007a61005f366004610918565b6001600160a01b031660009081526035602052604090205490565b6040519081526020015b60405180910390f35b6100a061009b366004610948565b610106565b604051610084929190610a43565b3480156100ba57600080fd5b506100c36102a0565b6040516100849796959493929190610a66565b3480156100e257600080fd5b506100f66100f1366004610948565b61033e565b6040519015158152602001610084565b6000606061011585858561033e565b6101815760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f6573604482015271081b9bdd081b585d18da081c995c5d595cdd60721b60648201526084015b60405180910390fd5b61019060808601356001610afc565b603560006101a16020890189610918565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000808660200160208101906101db9190610918565b6001600160a01b0316606088013560408901356101fb60a08b018b610b22565b61020860208d018d610918565b60405160200161021a93929190610b69565b60408051601f198184030181529082905261023491610b8f565b600060405180830381858888f193505050503d8060008114610272576040519150601f19603f3d011682016040523d82523d6000602084013e610277565b606091505b50909250905061028c603f6060890135610bab565b5a1161029457fe5b90969095509350505050565b6000606080600080600060606001546000801b1480156102c05750600254155b6103045760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610178565b61030c6104bd565b61031461054f565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60008061045184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061044b92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e4891506103ae905060208a018a610918565b6103be60408b0160208c01610918565b60408b013560608c013560808d01356103da60a08f018f610b22565b6040516103e8929190610bcd565b6040805191829003822060208301989098526001600160a01b0396871690820152949093166060850152608084019190915260a083015260c082015260e0810191909152610100016040516020818303038152906040528051906020012061055e565b90610591565b90506080850135603560006104696020890189610918565b6001600160a01b03166001600160a01b03168152602001908152602001600020541480156104b4575061049f6020860186610918565b6001600160a01b0316816001600160a01b0316145b95945050505050565b6060600380546104cc90610bdd565b80601f01602080910402602001604051908101604052809291908181526020018280546104f890610bdd565b80156105455780601f1061051a57610100808354040283529160200191610545565b820191906000526020600020905b81548152906001019060200180831161052857829003601f168201915b5050505050905090565b6060600480546104cc90610bdd565b600061058b61056b6105b5565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b60008060006105a085856105c4565b915091506105ad81610609565b509392505050565b60006105bf610756565b905090565b60008082516041036105fa5760208301516040840151606085015160001a6105ee878285856107ca565b94509450505050610602565b506000905060025b9250929050565b600081600481111561061d5761061d610c17565b036106255750565b600181600481111561063957610639610c17565b036106865760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610178565b600281600481111561069a5761069a610c17565b036106e75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610178565b60038160048111156106fb576106fb610c17565b036107535760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610178565b50565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61078161088e565b6107896108e7565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156108015750600090506003610885565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610855573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661087e57600060019250925050610885565b9150600090505b94509492505050565b6000806108996104bd565b8051909150156108b0578051602090910120919050565b60015480156108bf5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806108f261054f565b805190915015610909578051602090910120919050565b60025480156108bf5792915050565b60006020828403121561092a57600080fd5b81356001600160a01b038116811461094157600080fd5b9392505050565b60008060006040848603121561095d57600080fd5b833567ffffffffffffffff8082111561097557600080fd5b9085019060c0828803121561098957600080fd5b9093506020850135908082111561099f57600080fd5b818601915086601f8301126109b357600080fd5b8135818111156109c257600080fd5b8760208285010111156109d457600080fd5b6020830194508093505050509250925092565b60005b83811015610a025781810151838201526020016109ea565b83811115610a11576000848401525b50505050565b60008151808452610a2f8160208601602086016109e7565b601f01601f19169290920160200192915050565b8215158152604060208201526000610a5e6040830184610a17565b949350505050565b60ff60f81b881681526000602060e081840152610a8660e084018a610a17565b8381036040850152610a98818a610a17565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610aea57835183529284019291840191600101610ace565b50909c9b505050505050505050505050565b60008219821115610b1d57634e487b7160e01b600052601160045260246000fd5b500190565b6000808335601e19843603018112610b3957600080fd5b83018035915067ffffffffffffffff821115610b5457600080fd5b60200191503681900382131561060257600080fd5b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251610ba18184602087016109e7565b9190910192915050565b600082610bc857634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b600181811c90821680610bf157607f821691505b602082108103610c1157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212204510d2e590432bdfca0c349baed747d13ba342a7e6c4e6f1221a6d886946d8b064736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
