{
  "_format": "hh-sol-artifact-1",
  "contractName": "Forwarder",
  "sourceName": "@thirdweb-dev/contracts/forwarder/Forwarder.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidShortString",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "str",
          "type": "string"
        }
      ],
      "name": "StringTooLong",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "EIP712DomainChanged",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "eip712Domain",
      "outputs": [
        {
          "internalType": "bytes1",
          "name": "fields",
          "type": "bytes1"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "version",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "verifyingContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[]",
          "name": "extensions",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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 Forwarder.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 Forwarder.ForwardRequest",
          "name": "req",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "verify",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6101606040523480156200001257600080fd5b506040518060400160405280600f81526020016e23a9a73b19102337b93bb0b93232b960891b81525060405180604001604052806005815260200164302e302e3160d81b815250620000746000836200012e60201b620005d21790919060201c565b61012052620000918160016200012e602090811b620005d217901c565b61014052815160208084019190912060e052815190820120610100524660a0526200011f60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052620003bb565b60006020835110156200014e5762000146836200017e565b905062000178565b826200016583620001ca60201b620006051760201c565b9062000172908262000272565b5060ff90505b92915050565b600080829050601f81511115620001b5578260405163305a27a960e01b8152600401620001ac91906200033e565b60405180910390fd5b8051620001c28262000396565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001f857607f821691505b6020821081036200021957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026d57600081815260208120601f850160051c81016020861015620002485750805b601f850160051c820191505b81811015620002695782815560010162000254565b5050505b505050565b81516001600160401b038111156200028e576200028e620001cd565b620002a6816200029f8454620001e3565b846200021f565b602080601f831160018114620002de5760008415620002c55750858301515b600019600386901b1c1916600185901b17855562000269565b600085815260208120601f198616915b828110156200030f57888601518255948401946001909101908401620002ee565b50858210156200032e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b818110156200036d578581018301518582016040015282016200034f565b8181111562000380576000604083870101525b50601f01601f1916929092016040019392505050565b80516020808301519190811015620002195760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516111e86200041660003960006103a60152600061037c015260006108950152600061086d015260006107c8015260006107f20152600061081c01526111e86000f3fe60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461009a57806384b0196e146100bb578063bf5d3bdb146100e3575b600080fd5b34801561005057600080fd5b5061008761005f366004610baa565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100ad6100a8366004610be7565b610113565b604051610091929190610ce2565b3480156100c757600080fd5b506100d061036e565b6040516100919796959493929190610d05565b3480156100ef57600080fd5b506101036100fe366004610be7565b610412565b6040519015158152602001610091565b60006060610122858585610412565b6101995760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f657360448201527f206e6f74206d617463682072657175657374000000000000000000000000000060648201526084015b60405180910390fd5b6101a860808601356001610dc4565b600260006101b96020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008086602001602081019061020d9190610baa565b73ffffffffffffffffffffffffffffffffffffffff166060880135604089013561023a60a08b018b610e03565b61024760208d018d610baa565b60405160200161025993929190610e68565b60408051601f198184030181529082905261027391610ea1565b600060405180830381858888f193505050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b509150915081610345576044815110156103125760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006044820152606401610190565b6004810190508080602001905181019061032c9190610eec565b60405162461bcd60e51b81526004016101909190610f99565b610354603f6060890135610fac565b5a1161036257610362610fe7565b90969095509350505050565b6000606080828080836103a17f000000000000000000000000000000000000000000000000000000000000000083610608565b6103cc7f00000000000000000000000000000000000000000000000000000000000000006001610608565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60008061053284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061052c92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610482905060208a018a610baa565b61049260408b0160208c01610baa565b60408b013560608c013560808d01356104ae60a08f018f610e03565b6040516104bc929190611016565b60408051918290038220602083019890985273ffffffffffffffffffffffffffffffffffffffff96871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206106ac565b906106f4565b905060808501356002600061054a6020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156105c9575061059a6020860186610baa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b95945050505050565b60006020835110156105ee576105e783610718565b90506105ff565b816105f984826110c8565b5060ff90505b92915050565b90565b606060ff831461061b576105e78361076f565b81805461062790611026565b80601f016020809104026020016040519081016040528092919081815260200182805461065390611026565b80156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505090506105ff565b60006105ff6106b96107ae565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061070385856108eb565b9150915061071081610930565b509392505050565b600080829050601f8151111561075c57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016101909190610f99565b805161076782611188565b179392505050565b6060600061077c83610a98565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561081457507f000000000000000000000000000000000000000000000000000000000000000046145b1561083e57507f000000000000000000000000000000000000000000000000000000000000000090565b6108e6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036109215760208301516040840151606085015160001a61091587828585610ad9565b94509450505050610929565b506000905060025b9250929050565b6000816004811115610944576109446111ac565b0361094c5750565b6001816004811115610960576109606111ac565b036109ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610190565b60028160048111156109c1576109c16111ac565b03610a0e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610190565b6003816004811115610a2257610a226111ac565b03610a955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610190565b50565b600060ff8216601f8111156105ff576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b105750600090506003610ba1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610b64573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116610b9a57600060019250925050610ba1565b9150600090505b94509492505050565b600060208284031215610bbc57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be057600080fd5b9392505050565b600080600060408486031215610bfc57600080fd5b833567ffffffffffffffff80821115610c1457600080fd5b9085019060c08288031215610c2857600080fd5b90935060208501359080821115610c3e57600080fd5b818601915086601f830112610c5257600080fd5b813581811115610c6157600080fd5b876020828501011115610c7357600080fd5b6020830194508093505050509250925092565b60005b83811015610ca1578181015183820152602001610c89565b83811115610cb0576000848401525b50505050565b60008151808452610cce816020860160208601610c86565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cfd6040830184610cb6565b949350505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152610d4160e084018a610cb6565b8381036040850152610d53818a610cb6565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610db257835183529284019291840191600101610d96565b50909c9b505050505050505050505050565b60008219821115610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e3857600080fd5b83018035915067ffffffffffffffff821115610e5357600080fd5b60200191503681900382131561092957600080fd5b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b60008251610eb3818460208701610c86565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610efe57600080fd5b815167ffffffffffffffff80821115610f1657600080fd5b818401915084601f830112610f2a57600080fd5b815181811115610f3c57610f3c610ebd565b604051601f8201601f19908116603f01168101908382118183101715610f6457610f64610ebd565b81604052828152876020848701011115610f7d57600080fd5b610f8e836020830160208801610c86565b979650505050505050565b602081526000610be06020830184610cb6565b600082610fe2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600181811c9082168061103a57607f821691505b602082108103611073577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110c357600081815260208120601f850160051c810160208610156110a05750805b601f850160051c820191505b818110156110bf578281556001016110ac565b5050505b505050565b815167ffffffffffffffff8111156110e2576110e2610ebd565b6110f6816110f08454611026565b84611079565b602080601f83116001811461112b57600084156111135750858301515b600019600386901b1c1916600185901b1785556110bf565b600085815260208120601f198616915b8281101561115a5788860151825594840194600190910190840161113b565b50858210156111785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805160208083015191908110156110735760001960209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461009a57806384b0196e146100bb578063bf5d3bdb146100e3575b600080fd5b34801561005057600080fd5b5061008761005f366004610baa565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100ad6100a8366004610be7565b610113565b604051610091929190610ce2565b3480156100c757600080fd5b506100d061036e565b6040516100919796959493929190610d05565b3480156100ef57600080fd5b506101036100fe366004610be7565b610412565b6040519015158152602001610091565b60006060610122858585610412565b6101995760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f657360448201527f206e6f74206d617463682072657175657374000000000000000000000000000060648201526084015b60405180910390fd5b6101a860808601356001610dc4565b600260006101b96020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008086602001602081019061020d9190610baa565b73ffffffffffffffffffffffffffffffffffffffff166060880135604089013561023a60a08b018b610e03565b61024760208d018d610baa565b60405160200161025993929190610e68565b60408051601f198184030181529082905261027391610ea1565b600060405180830381858888f193505050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b509150915081610345576044815110156103125760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006044820152606401610190565b6004810190508080602001905181019061032c9190610eec565b60405162461bcd60e51b81526004016101909190610f99565b610354603f6060890135610fac565b5a1161036257610362610fe7565b90969095509350505050565b6000606080828080836103a17f000000000000000000000000000000000000000000000000000000000000000083610608565b6103cc7f00000000000000000000000000000000000000000000000000000000000000006001610608565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60008061053284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061052c92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610482905060208a018a610baa565b61049260408b0160208c01610baa565b60408b013560608c013560808d01356104ae60a08f018f610e03565b6040516104bc929190611016565b60408051918290038220602083019890985273ffffffffffffffffffffffffffffffffffffffff96871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206106ac565b906106f4565b905060808501356002600061054a6020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156105c9575061059a6020860186610baa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b95945050505050565b60006020835110156105ee576105e783610718565b90506105ff565b816105f984826110c8565b5060ff90505b92915050565b90565b606060ff831461061b576105e78361076f565b81805461062790611026565b80601f016020809104026020016040519081016040528092919081815260200182805461065390611026565b80156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505090506105ff565b60006105ff6106b96107ae565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061070385856108eb565b9150915061071081610930565b509392505050565b600080829050601f8151111561075c57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016101909190610f99565b805161076782611188565b179392505050565b6060600061077c83610a98565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561081457507f000000000000000000000000000000000000000000000000000000000000000046145b1561083e57507f000000000000000000000000000000000000000000000000000000000000000090565b6108e6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036109215760208301516040840151606085015160001a61091587828585610ad9565b94509450505050610929565b506000905060025b9250929050565b6000816004811115610944576109446111ac565b0361094c5750565b6001816004811115610960576109606111ac565b036109ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610190565b60028160048111156109c1576109c16111ac565b03610a0e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610190565b6003816004811115610a2257610a226111ac565b03610a955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610190565b50565b600060ff8216601f8111156105ff576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b105750600090506003610ba1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610b64573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116610b9a57600060019250925050610ba1565b9150600090505b94509492505050565b600060208284031215610bbc57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be057600080fd5b9392505050565b600080600060408486031215610bfc57600080fd5b833567ffffffffffffffff80821115610c1457600080fd5b9085019060c08288031215610c2857600080fd5b90935060208501359080821115610c3e57600080fd5b818601915086601f830112610c5257600080fd5b813581811115610c6157600080fd5b876020828501011115610c7357600080fd5b6020830194508093505050509250925092565b60005b83811015610ca1578181015183820152602001610c89565b83811115610cb0576000848401525b50505050565b60008151808452610cce816020860160208601610c86565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cfd6040830184610cb6565b949350505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152610d4160e084018a610cb6565b8381036040850152610d53818a610cb6565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610db257835183529284019291840191600101610d96565b50909c9b505050505050505050505050565b60008219821115610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e3857600080fd5b83018035915067ffffffffffffffff821115610e5357600080fd5b60200191503681900382131561092957600080fd5b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b60008251610eb3818460208701610c86565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610efe57600080fd5b815167ffffffffffffffff80821115610f1657600080fd5b818401915084601f830112610f2a57600080fd5b815181811115610f3c57610f3c610ebd565b604051601f8201601f19908116603f01168101908382118183101715610f6457610f64610ebd565b81604052828152876020848701011115610f7d57600080fd5b610f8e836020830160208801610c86565b979650505050505050565b602081526000610be06020830184610cb6565b600082610fe2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600181811c9082168061103a57607f821691505b602082108103611073577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110c357600081815260208120601f850160051c810160208610156110a05750805b601f850160051c820191505b818110156110bf578281556001016110ac565b5050505b505050565b815167ffffffffffffffff8111156110e2576110e2610ebd565b6110f6816110f08454611026565b84611079565b602080601f83116001811461112b57600084156111135750858301515b600019600386901b1c1916600185901b1785556110bf565b600085815260208120601f198616915b8281101561115a5788860151825594840194600190910190840161113b565b50858210156111785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805160208083015191908110156110735760001960209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
