[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyLinked", "type": "error" }, { "inputs": [], "name": "FnSelectorNotRecognized", "type": "error" }, { "inputs": [], "name": "NotLinked", "type": "error" }, { "inputs": [], "name": "SenderNotBase", "type": "error" }, { "inputs": [], "name": "SenderNotDeployer", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "BLAST", "outputs": [ { "internalType": "contract IBlast", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "nftOwner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseERC20", "outputs": [ { "internalType": "address", "name": "base", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "claimAllGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "claimMaxGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "nftOwner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerAt", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pullOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "readGas", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405234801561001057600080fd5b50683602298b8c10b0123180546001600160a01b0319163217905560408051634e606c4760e01b8152905173430000000000000000000000000000000000000291634e606c4791600480830192600092919082900301818387803b15801561007757600080fd5b505af115801561008b573d6000803e3d6000fd5b5050505061104c8061009e6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a22cb4651161006f578063a22cb46514610555578063b88d4fde14610575578063c87b56dd14610588578063cd2002f5146105a8578063d5abeb01146105bb578063e985e9c5146105cf57610156565b806370a08231146104c65780638da5cb5b146104e657806395d89b41146104fb57806397d757761461051057806397e5311c1461052b5780639ed5a3971461054057610156565b806323b872dd1161010857806323b872dd14610438578063243598791461044b578063272b13231461046b57806342842e0e1461047e5780636352211e146104915780636cef16e6146104b157610156565b806301ffc9a71461035657806306fdde03146103a8578063081812fc146103ca578063095ea7b31461040257806318160ddd1461041557610156565b3661015657341561015457600080fd5b005b683602298b8c10b0123060003560e01c63263c69d681900361020c5781546001600160a01b0316331461019c57604051631b1e598960e11b815260040160405180910390fd5b600435602401602081033560051b81015b8082146101ff5781358060601c816001168260a01b60a81c811583028284027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a45050508160200191506101ad565b5050600160005260206000f35b8063144027d3036102a25781546001600160a01b0316331461024157604051631b1e598960e11b815260040160405180910390fd5b600435602435604435602401602081033560051b81015b80821461029357813583857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4816020019150610258565b50505050600160005260206000f35b80630f4599e50361033d5760018201546001600160a01b0316156102f85760018201546001600160a01b03166004356001600160a01b0316146102f8576040516362cf623d60e11b815260040160405180910390fd5b81546001600160a01b03161561032157604051635fb2b52360e11b815260040160405180910390fd5b81546001600160a01b0319163317825560016000908152602090f35b604051631e085ca760e11b815260040160405180910390fd5b34801561036257600080fd5b50610393610371366004610d56565b6301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b60405190151581526020015b60405180910390f35b3480156103b457600080fd5b506103bd6105ef565b60405161039f9190610d87565b3480156103d657600080fd5b506103ea6103e5366004610dd5565b610605565b6040516001600160a01b03909116815260200161039f565b610154610410366004610e06565b61061d565b34801561042157600080fd5b5061042a6106a3565b60405190815260200161039f565b610154610446366004610e32565b6106b5565b34801561045757600080fd5b506103ea610466366004610dd5565b610744565b610154610479366004610e73565b610756565b61015461048c366004610e32565b61082b565b34801561049d57600080fd5b506103ea6104ac366004610dd5565b61085d565b3480156104bd57600080fd5b5061039361086f565b3480156104d257600080fd5b5061042a6104e1366004610e73565b61092a565b3480156104f257600080fd5b506103ea610945565b34801561050757600080fd5b506103bd6109b0565b34801561051c57600080fd5b506103ea6002604360981b0181565b34801561053757600080fd5b506103ea6109c1565b34801561054c57600080fd5b5061042a6109f6565b34801561056157600080fd5b50610154610570366004610e90565b610a6b565b610154610583366004610ece565b610aee565b34801561059457600080fd5b506103bd6105a3366004610dd5565b610b49565b6101546105b6366004610e73565b610b63565b3480156105c757600080fd5b50601461042a565b3480156105db57600080fd5b506103936105ea366004610f6d565b610bf0565b60606106006306fdde036000610c1c565b905090565b600061061763081812fc836000610c82565b92915050565b60006106276109c1565b90508260601b60601c925060405163d10b6e0c600052836020528260405233606052602060006064601c34865af1601f3d1116610667573d6000823e3d81fd5b806040525060006060528183600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a4505050565b600061060063e2c79281600080610c82565b60006106bf6109c1565b90508360601b60601c93508260601b60601c925060405163e5eb36c881528460208201528360408201528260608201523360808201526020816084601c840134865af1600182511416610715573d6000823e3d81fd5b508183857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a450505050565b60006106176324359879836000610c82565b61075e610945565b6001600160a01b0316336001600160a01b0316146107af5760405162461bcd60e51b81526020600482015260096024820152682737ba1027bbb732b960b91b60448201526064015b60405180910390fd5b604051634aa7d2f760e11b81523060048201526001600160a01b03821660248201526002604360981b019063954fa5ee906044015b6020604051808303816000875af1158015610803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190610f9b565b5050565b6108368383836106b5565b813b156108585761085883838360405180602001604052806000815250610cca565b505050565b6000610617636352211e836000610c82565b600080600061087c6109c1565b9050638da5cb5b600052602060006004601c845afa600c51683602298b8c10b0123254601f3d119290921660609190911c029250683602298b8c10b01230906001600160a01b03908116908416811461091f576002820180546001600160a01b0319166001600160a01b0386811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b600194505050505090565b600061061763f5b100ea836001600160a01b03166000610c82565b600061094f6109c1565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561098c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106009190610fb4565b60606106006395d89b416000610c1c565b683602298b8c10b01230546001600160a01b0316806109f357604051632d9523d760e11b815260040160405180910390fd5b90565b604051633779e62960e21b815230600482015260009081906002604360981b019063dde798a490602401608060405180830381865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a619190610fd1565b5090949350505050565b6000610a756109c1565b90508260601b60601c925060405163813500fc6000528360205282151560405233606052602060006064601c34865af160016000511416610ab9573d6000823e3d81fd5b83337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a36040525050600060605250565b610af98585856106b5565b833b15610b4257610b4285858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610cca92505050565b5050505050565b6060610b548261085d565b5061061763c87b56dd83610c1c565b610b6b610945565b6001600160a01b0316336001600160a01b031614610bb75760405162461bcd60e51b81526020600482015260096024820152682737ba1027bbb732b960b91b60448201526064016107a6565b60405163662aa11d60e01b81523060048201526001600160a01b03821660248201526002604360981b019063662aa11d906044016107e4565b6000610c1363e985e9c5846001600160a01b0316846001600160a01b0316610c82565b15159392505050565b60606000610c286109c1565b9050604051915083600052826020526000806024601c845afa610c4e573d6000833e3d82fd5b60206000803e6020600051833e8151602060005101602084013e815160208301016000815260208101604052505092915050565b600080610c8d6109c1565b9050604051856000528460205283604052602060006044601c855afa601f3d1116610cbb573d6000823e3d81fd5b60405250506000519392505050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015610d11578060c08401826020870160045afa505b60208360a48301601c860160008a5af1610d34573d15610d34573d6000843e3d83fd5b508060e01b825114610d4e5763d1a57ed66000526004601cfd5b505050505050565b600060208284031215610d6857600080fd5b81356001600160e01b031981168114610d8057600080fd5b9392505050565b600060208083528351808285015260005b81811015610db457858101830151858201604001528201610d98565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610de757600080fd5b5035919050565b6001600160a01b0381168114610e0357600080fd5b50565b60008060408385031215610e1957600080fd5b8235610e2481610dee565b946020939093013593505050565b600080600060608486031215610e4757600080fd5b8335610e5281610dee565b92506020840135610e6281610dee565b929592945050506040919091013590565b600060208284031215610e8557600080fd5b8135610d8081610dee565b60008060408385031215610ea357600080fd5b8235610eae81610dee565b915060208301358015158114610ec357600080fd5b809150509250929050565b600080600080600060808688031215610ee657600080fd5b8535610ef181610dee565b94506020860135610f0181610dee565b935060408601359250606086013567ffffffffffffffff80821115610f2557600080fd5b818801915088601f830112610f3957600080fd5b813581811115610f4857600080fd5b896020828501011115610f5a57600080fd5b9699959850939650602001949392505050565b60008060408385031215610f8057600080fd5b8235610f8b81610dee565b91506020830135610ec381610dee565b600060208284031215610fad57600080fd5b5051919050565b600060208284031215610fc657600080fd5b8151610d8081610dee565b60008060008060808587031215610fe757600080fd5b84519350602085015192506040850151915060608501516002811061100b57600080fd5b93969295509093505056fea264697066735822122038390205f9d7fa63eac7404b241c0431ad740d26a9b239d89ab627bd6ebf2d6a64736f6c63430008140033