{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC6551Account",
  "sourceName": "contracts/ERC6551Account.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "uint8",
          "name": "operation",
          "type": "uint8"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "result",
          "type": "bytes"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "magicValue",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "isValidSigner",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "state",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b50610e618061001f6000396000f3fe60806040526004361061007f5760003560e01c8063523e32601161004e578063523e326014610139578063c19d93fb14610159578063fc0c546a1461017d578063fffb51831461021357600080fd5b806301ffc9a71461008b578063150b7a02146100c05780631626ba7e146100f9578063519454471461011957600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a63660046109ef565b610235565b60405190151581526020015b60405180910390f35b3480156100cc57600080fd5b506100e06100db366004610a7a565b6102a2565b6040516001600160e01b031990911681526020016100b7565b34801561010557600080fd5b506100e0610114366004610b03565b6102b4565b61012c610127366004610bc6565b6103d5565b6040516100b79190610c90565b34801561014557600080fd5b506100e0610154366004610ca3565b6105d8565b34801561016557600080fd5b5061016f60005481565b6040519081526020016100b7565b34801561018957600080fd5b507f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f0547f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f1547f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f254604080519384526001600160a01b039092166020840152908201526060016100b7565b34801561021f57600080fd5b5061023361022e366004610cf8565b610601565b005b60006001600160e01b031982166301ffc9a760e01b148061026657506001600160e01b03198216636faff5f160e01b145b8061028157506001600160e01b03198216635194544760e01b145b8061029c57506001600160e01b03198216630a85bd0160e11b145b92915050565b630a85bd0160e11b5b95945050505050565b600080600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610d30565b92509250925046831461033657506000925061029c915050565b6040516331a9108f60e11b8152600481018290526000906001600160a01b03841690636352211e90602401602060405180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610d6b565b90506103af81888861067c565b156103c85750630b135d3f60e11b935061029c92505050565b5060009695505050505050565b60606103e0336106f0565b6104225760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b4b3b732b960911b60448201526064015b60405180910390fd5b600080815461043090610d88565b9091555060ff82166000036104e857600080876001600160a01b031687878760405161045d929190610daf565b60006040518083038185875af1925050503d806000811461049a576040519150601f19603f3d011682016040523d82523d6000602084013e61049f565b606091505b5091509150816104df5760405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606401610419565b91506102ab9050565b8160ff1660010361059857600080876001600160a01b03168686604051610510929190610daf565b600060405180830381855af49150503d806000811461054b576040519150601f19603f3d011682016040523d82523d6000602084013e610550565b606091505b5091509150816104df5760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606401610419565b60405162461bcd60e51b81526020600482015260156024820152742ab739bab83837b93a32b21037b832b930ba34b7b760591b6044820152606401610419565b60006105e3846106f0565b156105f65750630291f19360e51b6105fa565b5060005b9392505050565b7f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f0805480156106685760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610419565b509283556001830191909155600290910155565b6000836001600160a01b03163b6000036106de5760008061069d85856107f7565b50909250905060008160038111156106b7576106b7610dbf565b1480156106d55750856001600160a01b0316826001600160a01b0316145b925050506105fa565b6106e9848484610844565b90506105fa565b600080600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190610d30565b92509250925046831461077057506000949350505050565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa1580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190610d6b565b6001600160a01b0316856001600160a01b0316149350505050919050565b600080600083516041036108315760208401516040850151606086015160001a61082388828585610920565b95509550955050505061083d565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401610866929190610dd5565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b1790525161089b9190610df6565b600060405180830381855afa9150503d80600081146108d6576040519150601f19603f3d011682016040523d82523d6000602084013e6108db565b606091505b50915091508180156108ef57506020815110155b801561091657508051630b135d3f60e11b906109149083016020908101908401610e12565b145b9695505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561095b57506000915060039050826109e5565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156109af573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109db575060009250600191508290506109e5565b9250600091508190505b9450945094915050565b600060208284031215610a0157600080fd5b81356001600160e01b0319811681146105fa57600080fd5b6001600160a01b0381168114610a2e57600080fd5b50565b60008083601f840112610a4357600080fd5b50813567ffffffffffffffff811115610a5b57600080fd5b602083019150836020828501011115610a7357600080fd5b9250929050565b600080600080600060808688031215610a9257600080fd5b8535610a9d81610a19565b94506020860135610aad81610a19565b935060408601359250606086013567ffffffffffffffff811115610ad057600080fd5b610adc88828901610a31565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610b1657600080fd5b82359150602083013567ffffffffffffffff811115610b3457600080fd5b8301601f81018513610b4557600080fd5b803567ffffffffffffffff811115610b5f57610b5f610aed565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610b8e57610b8e610aed565b604052818152828201602001871015610ba657600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215610bde57600080fd5b8535610be981610a19565b945060208601359350604086013567ffffffffffffffff811115610c0c57600080fd5b610c1888828901610a31565b909450925050606086013560ff81168114610c3257600080fd5b809150509295509295909350565b60005b83811015610c5b578181015183820152602001610c43565b50506000910152565b60008151808452610c7c816020860160208601610c40565b601f01601f19169290920160200192915050565b6020815260006105fa6020830184610c64565b600080600060408486031215610cb857600080fd5b8335610cc381610a19565b9250602084013567ffffffffffffffff811115610cdf57600080fd5b610ceb86828701610a31565b9497909650939450505050565b600080600060608486031215610d0d57600080fd5b833592506020840135610d1f81610a19565b929592945050506040919091013590565b600080600060608486031215610d4557600080fd5b83516020850151909350610d5881610a19565b6040949094015192959394509192915050565b600060208284031215610d7d57600080fd5b81516105fa81610a19565b600060018201610da857634e487b7160e01b600052601160045260246000fd5b5060010190565b8183823760009101908152919050565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610dee6040830184610c64565b949350505050565b60008251610e08818460208701610c40565b9190910192915050565b600060208284031215610e2457600080fd5b505191905056fea264697066735822122009e00011b5b82562847cb4b277466b312de5046da5e2f489fc7f36ee3192ddae64736f6c634300081c0033",
  "deployedBytecode": "0x60806040526004361061007f5760003560e01c8063523e32601161004e578063523e326014610139578063c19d93fb14610159578063fc0c546a1461017d578063fffb51831461021357600080fd5b806301ffc9a71461008b578063150b7a02146100c05780631626ba7e146100f9578063519454471461011957600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a63660046109ef565b610235565b60405190151581526020015b60405180910390f35b3480156100cc57600080fd5b506100e06100db366004610a7a565b6102a2565b6040516001600160e01b031990911681526020016100b7565b34801561010557600080fd5b506100e0610114366004610b03565b6102b4565b61012c610127366004610bc6565b6103d5565b6040516100b79190610c90565b34801561014557600080fd5b506100e0610154366004610ca3565b6105d8565b34801561016557600080fd5b5061016f60005481565b6040519081526020016100b7565b34801561018957600080fd5b507f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f0547f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f1547f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f254604080519384526001600160a01b039092166020840152908201526060016100b7565b34801561021f57600080fd5b5061023361022e366004610cf8565b610601565b005b60006001600160e01b031982166301ffc9a760e01b148061026657506001600160e01b03198216636faff5f160e01b145b8061028157506001600160e01b03198216635194544760e01b145b8061029c57506001600160e01b03198216630a85bd0160e11b145b92915050565b630a85bd0160e11b5b95945050505050565b600080600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610d30565b92509250925046831461033657506000925061029c915050565b6040516331a9108f60e11b8152600481018290526000906001600160a01b03841690636352211e90602401602060405180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610d6b565b90506103af81888861067c565b156103c85750630b135d3f60e11b935061029c92505050565b5060009695505050505050565b60606103e0336106f0565b6104225760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b4b3b732b960911b60448201526064015b60405180910390fd5b600080815461043090610d88565b9091555060ff82166000036104e857600080876001600160a01b031687878760405161045d929190610daf565b60006040518083038185875af1925050503d806000811461049a576040519150601f19603f3d011682016040523d82523d6000602084013e61049f565b606091505b5091509150816104df5760405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606401610419565b91506102ab9050565b8160ff1660010361059857600080876001600160a01b03168686604051610510929190610daf565b600060405180830381855af49150503d806000811461054b576040519150601f19603f3d011682016040523d82523d6000602084013e610550565b606091505b5091509150816104df5760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606401610419565b60405162461bcd60e51b81526020600482015260156024820152742ab739bab83837b93a32b21037b832b930ba34b7b760591b6044820152606401610419565b60006105e3846106f0565b156105f65750630291f19360e51b6105fa565b5060005b9392505050565b7f4da36cf5bd4fa8300864a3992cd656a1b3186220d4cb50422acab57e193bb9f0805480156106685760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610419565b509283556001830191909155600290910155565b6000836001600160a01b03163b6000036106de5760008061069d85856107f7565b50909250905060008160038111156106b7576106b7610dbf565b1480156106d55750856001600160a01b0316826001600160a01b0316145b925050506105fa565b6106e9848484610844565b90506105fa565b600080600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190610d30565b92509250925046831461077057506000949350505050565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa1580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190610d6b565b6001600160a01b0316856001600160a01b0316149350505050919050565b600080600083516041036108315760208401516040850151606086015160001a61082388828585610920565b95509550955050505061083d565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401610866929190610dd5565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b1790525161089b9190610df6565b600060405180830381855afa9150503d80600081146108d6576040519150601f19603f3d011682016040523d82523d6000602084013e6108db565b606091505b50915091508180156108ef57506020815110155b801561091657508051630b135d3f60e11b906109149083016020908101908401610e12565b145b9695505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561095b57506000915060039050826109e5565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156109af573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109db575060009250600191508290506109e5565b9250600091508190505b9450945094915050565b600060208284031215610a0157600080fd5b81356001600160e01b0319811681146105fa57600080fd5b6001600160a01b0381168114610a2e57600080fd5b50565b60008083601f840112610a4357600080fd5b50813567ffffffffffffffff811115610a5b57600080fd5b602083019150836020828501011115610a7357600080fd5b9250929050565b600080600080600060808688031215610a9257600080fd5b8535610a9d81610a19565b94506020860135610aad81610a19565b935060408601359250606086013567ffffffffffffffff811115610ad057600080fd5b610adc88828901610a31565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610b1657600080fd5b82359150602083013567ffffffffffffffff811115610b3457600080fd5b8301601f81018513610b4557600080fd5b803567ffffffffffffffff811115610b5f57610b5f610aed565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610b8e57610b8e610aed565b604052818152828201602001871015610ba657600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215610bde57600080fd5b8535610be981610a19565b945060208601359350604086013567ffffffffffffffff811115610c0c57600080fd5b610c1888828901610a31565b909450925050606086013560ff81168114610c3257600080fd5b809150509295509295909350565b60005b83811015610c5b578181015183820152602001610c43565b50506000910152565b60008151808452610c7c816020860160208601610c40565b601f01601f19169290920160200192915050565b6020815260006105fa6020830184610c64565b600080600060408486031215610cb857600080fd5b8335610cc381610a19565b9250602084013567ffffffffffffffff811115610cdf57600080fd5b610ceb86828701610a31565b9497909650939450505050565b600080600060608486031215610d0d57600080fd5b833592506020840135610d1f81610a19565b929592945050506040919091013590565b600080600060608486031215610d4557600080fd5b83516020850151909350610d5881610a19565b6040949094015192959394509192915050565b600060208284031215610d7d57600080fd5b81516105fa81610a19565b600060018201610da857634e487b7160e01b600052601160045260246000fd5b5060010190565b8183823760009101908152919050565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000610dee6040830184610c64565b949350505050565b60008251610e08818460208701610c40565b9190910192915050565b600060208284031215610e2457600080fd5b505191905056fea264697066735822122009e00011b5b82562847cb4b277466b312de5046da5e2f489fc7f36ee3192ddae64736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
