{
  "_format": "hh-sol-artifact-1",
  "contractName": "MinimalBoltzSmartWalletFactory",
  "sourceName": "contracts/factory/MinimalBoltzSmartWalletFactory.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarderTemplate",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "salt",
          "type": "uint256"
        }
      ],
      "name": "Deployed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DATA_VERSION_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "domainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCreationBytecode",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recoverer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getSmartWalletAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "masterCopy",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        }
      ],
      "name": "nonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "relayHub",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "tokenContract",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "recoverer",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenGas",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "validUntilTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            }
          ],
          "internalType": "struct IForwarder.DeployRequest",
          "name": "req",
          "type": "tuple"
        },
        {
          "internalType": "bytes32",
          "name": "suffixData",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "feesReceiver",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "sig",
          "type": "bytes"
        }
      ],
      "name": "relayedUserSmartWalletCreation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "runtimeCodeHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c06040527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7fd41b7f69f4d7734774d21b5548d74704ad02f9f1545db63927a1d58479c576c87fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a561006f6100df565b30604051602001610084959493929190610111565b60408051601f19818403018152919052805160209091012060a0523480156100ab57600080fd5b506040516112143803806112148339810160408190526100ca916100e3565b60601b6001600160601b03191660805261013d565b4690565b6000602082840312156100f4578081fd5b81516001600160a01b038116811461010a578182fd5b9392505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60805160601c60a0516110a26101726000398061048e52806104f85250806102d052806103cd528061042652506110a26000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a619486e1161005b578063a619486e146100f3578063b3104ef6146100fb578063f5e87b3914610103578063f698da251461011857610088565b806312c3754c1461008d5780632046776e146100a25780636088665e146100c057806370ae92d2146100e0575b600080fd5b6100a061009b3660046109d7565b610120565b005b6100aa6102bd565b6040516100b79190610df5565b60405180910390f35b6100d36100ce366004610997565b61033d565b6040516100b79190610d2a565b6100aa6100ee36600461097c565b6103b0565b6100d36103cb565b6100aa6103ef565b61010b610413565b6040516100b79190610e1c565b6100aa61048c565b84516001600160a01b031633146101525760405162461bcd60e51b815260040161014990610ed4565b60405180910390fd5b610193858584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104b092505050565b61012085015115806101a9575042856101200151115b6101c55760405162461bcd60e51b815260040161014990610f4d565b6020808601516001600160a01b031660009081529081905260409020805460010190556102b56101f3610413565b60208088015160808901516101408a01516040516102119401610b58565b604051602081830303815290604052805190602001208760200151868960e001518a61010001518b604001518c610160015160405160240161025896959493929190610da9565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3d32673600000000000000000000000000000000000000000000000000000000179052610586565b505050505050565b60006a363d3d373d3d3d3d363d7360a81b7f00000000000000000000000000000000000000000000000000000000000000007f5af43d923d90803e602b57fd5bf300000000000000000000000000000000000060405160200161032293929190610b86565b60405160208183030381529060405280519060200120905090565b600060ff60f81b3085858560405160200161035a93929190610b58565b60405160208183030381529060405280519060200120610378610413565b80516020918201206040516103909594939201610bdd565b60408051601f198184030181529190528051602090910120949350505050565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b7fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a581565b60606a363d3d373d3d3d3d363d7360a81b7f00000000000000000000000000000000000000000000000000000000000000007f5af43d923d90803e602b57fd5bf300000000000000000000000000000000000060405160200161047893929190610cad565b604051602081830303815290604052905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60c08301516020808501516001600160a01b03166000908152908190526040902054146104ef5760405162461bcd60e51b815260040161014990610e9d565b61056561055b827f0000000000000000000000000000000000000000000000000000000000000000610521878761065c565b8051602091820120604051610537939201610c77565b6040516020818303038152906040528051906020012061071990919063ffffffff16565b8460200151610764565b6105815760405162461bcd60e51b815260040161014990610fc6565b505050565b6000828451602086016000f59050803b61059f57600080fd5b60006060826001600160a01b0316846040516105bb9190610c5b565b6000604051808303816000865af19150503d80600081146105f8576040519150601f19603f3d011682016040523d82523d6000602084013e6105fd565b606091505b50915091508161060f57805160208201fd5b826001600160a01b03167fb03c53b28e78a88e31607a27e1fa48234dce28d5d9d9ec7b295aeb02e674a1e18660001c60405161064b9190610df5565b60405180910390a250509392505050565b60607fcfc8dd5219e39f43cc81cdcbf3b09a47b13a20a7e09d743bc2266fb814ee2f01836000015184602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001518d61014001518e6101600151805190602001206040516020016106e19c9b9a99989796959493929190610d3e565b60408051601f198184030181529082905261070192918590602001610c2e565b60405160208183030381529060405290505b92915050565b6000815160411461073c5760405162461bcd60e51b815260040161014990610e66565b60208201516040830151606084015160001a61075a868285856107bf565b9695505050505050565b6000816001600160a01b0316836001600160a01b03161480156107a4575073dcc703c0e500b653ca82273b7bfad8045d85a4706001600160a01b03841614155b80156107b857506001600160a01b03831615155b9392505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156108015760405162461bcd60e51b815260040161014990610f0b565b8360ff16601b148061081657508360ff16601c145b6108325760405162461bcd60e51b815260040161014990610f84565b6000600186868686604051600081526020016040526040516108579493929190610dfe565b6020604051602081039080840390855afa158015610879573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166108ac5760405162461bcd60e51b815260040161014990610e2f565b95945050505050565b80356001600160a01b038116811461071357600080fd5b60008083601f8401126108dd578182fd5b50813567ffffffffffffffff8111156108f4578182fd5b60208301915083602082850101111561090c57600080fd5b9250929050565b600082601f830112610923578081fd5b813567ffffffffffffffff811115610939578182fd5b61094c601f8201601f1916602001610ffd565b915080825283602082850101111561096357600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561098d578081fd5b6107b883836108b5565b6000806000606084860312156109ab578182fd5b83356109b681611054565b925060208401356109c681611054565b929592945050506040919091013590565b6000806000806000608086880312156109ee578081fd5b853567ffffffffffffffff80821115610a05578283fd5b818801915061018080838b031215610a1b578384fd5b610a2481610ffd565b9050610a308a846108b5565b8152610a3f8a602085016108b5565b6020820152610a518a604085016108b5565b6040820152610a638a606085016108b5565b6060820152610a758a608085016108b5565b608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101608084013583811115610acf578586fd5b610adb8c828701610913565b8284015250508097505060208801359550610af98960408a016108b5565b94506060880135915080821115610b0e578283fd5b50610b1b888289016108cc565b969995985093965092949392505050565b60008151808452610b44816020860160208601611024565b601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606094851b811682529290931b9091166014830152602882015260480190565b74ffffffffffffffffffffffffffffffffffffffffff1993909316835260609190911b6bffffffffffffffffffffffff1916600b83015271ffffffffffffffffffffffffffffffffffff1916601f820152602d0190565b7fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60008482528351610c46816020850160208801611024565b60209201918201929092526040019392505050565b60008251610c6d818460208701611024565b9190910192915050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b7f602d3d8160093d39f30000000000000000000000000000000000000000000000815274ffffffffffffffffffffffffffffffffffffffffff1993909316600984015260609190911b6bffffffffffffffffffffffff1916601483015271ffffffffffffffffffffffffffffffffffff1916602882015260360190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d1681529a8c1660208c0152988b1660408b0152968a1660608a015294909816608088015260a087019290925260c086015260e08501526101008401949094526101208301939093526101408201929092526101608101919091526101800190565b60006001600160a01b038089168352808816602084015286604084015285606084015280851660808401525060c060a0830152610de960c0830184610b2c565b98975050505050505050565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526107b86020830184610b2c565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b6020808252600e908201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f496e76616c69642063616c6c6572000000000000000000000000000000000000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526013908201527f53573a2072657175657374206578706972656400000000000000000000000000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526012908201527f5369676e6174757265206d69736d617463680000000000000000000000000000604082015260600190565b60405181810167ffffffffffffffff8111828210171561101c57600080fd5b604052919050565b60005b8381101561103f578181015183820152602001611027565b8381111561104e576000848401525b50505050565b6001600160a01b038116811461106957600080fd5b5056fea2646970667358221220e17f8bcba29e7d01555759337d6a364c7be8181123be53f6b44836d8efc4c42364736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a619486e1161005b578063a619486e146100f3578063b3104ef6146100fb578063f5e87b3914610103578063f698da251461011857610088565b806312c3754c1461008d5780632046776e146100a25780636088665e146100c057806370ae92d2146100e0575b600080fd5b6100a061009b3660046109d7565b610120565b005b6100aa6102bd565b6040516100b79190610df5565b60405180910390f35b6100d36100ce366004610997565b61033d565b6040516100b79190610d2a565b6100aa6100ee36600461097c565b6103b0565b6100d36103cb565b6100aa6103ef565b61010b610413565b6040516100b79190610e1c565b6100aa61048c565b84516001600160a01b031633146101525760405162461bcd60e51b815260040161014990610ed4565b60405180910390fd5b610193858584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104b092505050565b61012085015115806101a9575042856101200151115b6101c55760405162461bcd60e51b815260040161014990610f4d565b6020808601516001600160a01b031660009081529081905260409020805460010190556102b56101f3610413565b60208088015160808901516101408a01516040516102119401610b58565b604051602081830303815290604052805190602001208760200151868960e001518a61010001518b604001518c610160015160405160240161025896959493929190610da9565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3d32673600000000000000000000000000000000000000000000000000000000179052610586565b505050505050565b60006a363d3d373d3d3d3d363d7360a81b7f00000000000000000000000000000000000000000000000000000000000000007f5af43d923d90803e602b57fd5bf300000000000000000000000000000000000060405160200161032293929190610b86565b60405160208183030381529060405280519060200120905090565b600060ff60f81b3085858560405160200161035a93929190610b58565b60405160208183030381529060405280519060200120610378610413565b80516020918201206040516103909594939201610bdd565b60408051601f198184030181529190528051602090910120949350505050565b6001600160a01b031660009081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b7fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a581565b60606a363d3d373d3d3d3d363d7360a81b7f00000000000000000000000000000000000000000000000000000000000000007f5af43d923d90803e602b57fd5bf300000000000000000000000000000000000060405160200161047893929190610cad565b604051602081830303815290604052905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60c08301516020808501516001600160a01b03166000908152908190526040902054146104ef5760405162461bcd60e51b815260040161014990610e9d565b61056561055b827f0000000000000000000000000000000000000000000000000000000000000000610521878761065c565b8051602091820120604051610537939201610c77565b6040516020818303038152906040528051906020012061071990919063ffffffff16565b8460200151610764565b6105815760405162461bcd60e51b815260040161014990610fc6565b505050565b6000828451602086016000f59050803b61059f57600080fd5b60006060826001600160a01b0316846040516105bb9190610c5b565b6000604051808303816000865af19150503d80600081146105f8576040519150601f19603f3d011682016040523d82523d6000602084013e6105fd565b606091505b50915091508161060f57805160208201fd5b826001600160a01b03167fb03c53b28e78a88e31607a27e1fa48234dce28d5d9d9ec7b295aeb02e674a1e18660001c60405161064b9190610df5565b60405180910390a250509392505050565b60607fcfc8dd5219e39f43cc81cdcbf3b09a47b13a20a7e09d743bc2266fb814ee2f01836000015184602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001518d61014001518e6101600151805190602001206040516020016106e19c9b9a99989796959493929190610d3e565b60408051601f198184030181529082905261070192918590602001610c2e565b60405160208183030381529060405290505b92915050565b6000815160411461073c5760405162461bcd60e51b815260040161014990610e66565b60208201516040830151606084015160001a61075a868285856107bf565b9695505050505050565b6000816001600160a01b0316836001600160a01b03161480156107a4575073dcc703c0e500b653ca82273b7bfad8045d85a4706001600160a01b03841614155b80156107b857506001600160a01b03831615155b9392505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156108015760405162461bcd60e51b815260040161014990610f0b565b8360ff16601b148061081657508360ff16601c145b6108325760405162461bcd60e51b815260040161014990610f84565b6000600186868686604051600081526020016040526040516108579493929190610dfe565b6020604051602081039080840390855afa158015610879573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166108ac5760405162461bcd60e51b815260040161014990610e2f565b95945050505050565b80356001600160a01b038116811461071357600080fd5b60008083601f8401126108dd578182fd5b50813567ffffffffffffffff8111156108f4578182fd5b60208301915083602082850101111561090c57600080fd5b9250929050565b600082601f830112610923578081fd5b813567ffffffffffffffff811115610939578182fd5b61094c601f8201601f1916602001610ffd565b915080825283602082850101111561096357600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561098d578081fd5b6107b883836108b5565b6000806000606084860312156109ab578182fd5b83356109b681611054565b925060208401356109c681611054565b929592945050506040919091013590565b6000806000806000608086880312156109ee578081fd5b853567ffffffffffffffff80821115610a05578283fd5b818801915061018080838b031215610a1b578384fd5b610a2481610ffd565b9050610a308a846108b5565b8152610a3f8a602085016108b5565b6020820152610a518a604085016108b5565b6040820152610a638a606085016108b5565b6060820152610a758a608085016108b5565b608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101608084013583811115610acf578586fd5b610adb8c828701610913565b8284015250508097505060208801359550610af98960408a016108b5565b94506060880135915080821115610b0e578283fd5b50610b1b888289016108cc565b969995985093965092949392505050565b60008151808452610b44816020860160208601611024565b601f01601f19169290920160200192915050565b6bffffffffffffffffffffffff19606094851b811682529290931b9091166014830152602882015260480190565b74ffffffffffffffffffffffffffffffffffffffffff1993909316835260609190911b6bffffffffffffffffffffffff1916600b83015271ffffffffffffffffffffffffffffffffffff1916601f820152602d0190565b7fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60008482528351610c46816020850160208801611024565b60209201918201929092526040019392505050565b60008251610c6d818460208701611024565b9190910192915050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b7f602d3d8160093d39f30000000000000000000000000000000000000000000000815274ffffffffffffffffffffffffffffffffffffffffff1993909316600984015260609190911b6bffffffffffffffffffffffff1916601483015271ffffffffffffffffffffffffffffffffffff1916602882015260360190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d1681529a8c1660208c0152988b1660408b0152968a1660608a015294909816608088015260a087019290925260c086015260e08501526101008401949094526101208301939093526101408201929092526101608101919091526101800190565b60006001600160a01b038089168352808816602084015286604084015285606084015280851660808401525060c060a0830152610de960c0830184610b2c565b98975050505050505050565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526107b86020830184610b2c565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b6020808252600e908201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f496e76616c69642063616c6c6572000000000000000000000000000000000000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526013908201527f53573a2072657175657374206578706972656400000000000000000000000000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b60208082526012908201527f5369676e6174757265206d69736d617463680000000000000000000000000000604082015260600190565b60405181810167ffffffffffffffff8111828210171561101c57600080fd5b604052919050565b60005b8381101561103f578181015183820152602001611027565b8381111561104e576000848401525b50505050565b6001600160a01b038116811461106957600080fd5b5056fea2646970667358221220e17f8bcba29e7d01555759337d6a364c7be8181123be53f6b44836d8efc4c42364736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
