7.9k txs
22.8k calls
constructor
constructor(address _collection, uint256 _conversionRate)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
collection
viewfunction collection() view returns (address)
conversionRate
viewfunction conversionRate() view returns (uint256)
count
viewfunction count() view returns (uint256 _count)
decimals
viewfunction decimals() view returns (uint8)
getTokenIdAtIndex
viewfunction getTokenIdAtIndex(uint256 _index) view returns (uint256 _tokenId)
name
viewfunction name() view returns (string)
symbol
viewfunction symbol() view returns (string)
tokenIds
viewfunction tokenIds(uint256) view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
exchangeNFTsForTokens
nonpayablefunction exchangeNFTsForTokens(uint256[] _tokenIds)
exchangeTokensForNFTs
nonpayablefunction exchangeTokensForNFTs(uint256 _amount)
exchangeTokensForSpecificNFTs
nonpayablefunction exchangeTokensForSpecificNFTs(uint256 _amount, uint256[] _indices)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address _user, uint256 _tokenId)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdrawal
event Withdrawal(address _user, uint256 _tokenId)
errors
DepositZero
error DepositZero()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
IndexOutOfBounds
error IndexOutOfBounds()
IndicesMustBeMonotonicallyDecreasing
error IndicesMustBeMonotonicallyDecreasing()
IndicesMustEqualNumberToBeExchanged
error IndicesMustEqualNumberToBeExchanged()
PartialRedemptionDisallowed
error PartialRedemptionDisallowed()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60c060405234801561001057600080fd5b50604051611a98380380611a9883398101604081905261002f916100c2565b6040518060400160405280600a8152602001694261736564204269747360b01b81525060405180604001604052806005815260200164424249545360d81b815250816003908161007f919061019d565b50600461008c828261019d565b50506001600555506001600160a01b0382166080526100ad6012600a610358565b6100b7908261036e565b60a052506103859050565b600080604083850312156100d557600080fd5b82516001600160a01b03811681146100ec57600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061012657607f821691505b60208210810361014657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610198576000816000526020600020601f850160051c810160208610156101755750805b601f850160051c820191505b8181101561019457828155600101610181565b5050505b505050565b81516001600160401b038111156101b6576101b66100fc565b6101ca816101c48454610112565b8461014c565b602080601f8311600181146101ff57600084156101e75750858301515b600019600386901b1c1916600185901b178555610194565b600085815260208120601f198616915b8281101561022e5788860151825594840194600190910190840161020f565b508582101561024c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156102ad5781600019048211156102935761029361025c565b808516156102a057918102915b93841c9390800290610277565b509250929050565b6000826102c457506001610352565b816102d157506000610352565b81600181146102e757600281146102f15761030d565b6001915050610352565b60ff8411156103025761030261025c565b50506001821b610352565b5060208310610133831016604e8410600b8410161715610330575081810a610352565b61033a8383610272565b806000190482111561034e5761034e61025c565b0290505b92915050565b600061036760ff8416836102b5565b9392505050565b80820281158282048414176103525761035261025c565b60805160a0516116b66103e2600039600081816102200152818161042a015281816104970152818161071f015281816107820152610c910152600081816101d4015281816104cb0152818161087c0152610afd01526116b66000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80637ffdf53e116100b2578063b5eee13211610081578063c51450ca11610066578063c51450ca14610298578063d58778d6146102ab578063dd62ed3e146102be57600080fd5b8063b5eee13214610272578063b6a96eaa1461028557600080fd5b80637ffdf53e1461021b57806395d89b4114610242578063a245389a1461024a578063a9059cbb1461025f57600080fd5b806323b872dd116100ee57806323b872dd14610177578063313ce5671461018a57806370a08231146101995780637de1e536146101cf57600080fd5b806306661abd1461012057806306fdde0314610137578063095ea7b31461014c57806318160ddd1461016f575b600080fd5b6006545b6040519081526020015b60405180910390f35b61013f610304565b60405161012e91906112c8565b61015f61015a36600461135e565b610396565b604051901515815260200161012e565b600254610124565b61015f610185366004611388565b6103b0565b6040516012815260200161012e565b6101246101a73660046113c4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012e565b6101247f000000000000000000000000000000000000000000000000000000000000000081565b61013f6103d4565b61025d6102583660046113e6565b6103e3565b005b61015f61026d36600461135e565b6106ca565b61025d61028036600461144b565b6106d8565b61025d610293366004611497565b610aac565b6101246102a63660046113e6565b610cca565b6101246102b93660046113e6565b610d2d565b6101246102cc3660046114d9565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546103139061150c565b80601f016020809104026020016040519081016040528092919081815260200182805461033f9061150c565b801561038c5780601f106103615761010080835404028352916020019161038c565b820191906000526020600020905b81548152906001019060200180831161036f57829003601f168201915b5050505050905090565b6000336103a4818585610d4e565b60019150505b92915050565b6000336103be858285610d5b565b6103c9858585610e2f565b506001949350505050565b6060600480546103139061150c565b6103eb610eda565b80600003610425576040517feca6f47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61044f7f00000000000000000000000000000000000000000000000000000000000000008261158e565b15610486576040517f90823f3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104903382610f1d565b60006104bc7f0000000000000000000000000000000000000000000000000000000000000000836115d1565b905060005b818110156106bb577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3033600660008154811061051b5761051b6115e5565b6000918252602090912001546040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff93841660048201529290911660248301526044820152606401600060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b505050507f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b653360066000815481106105e9576105e96115e5565b600091825260209182902001546040805173ffffffffffffffffffffffffffffffffffffffff9094168452918301520160405180910390a16006805461063190600190611614565b81548110610641576106416115e5565b90600052602060002001546006600081548110610660576106606115e5565b600091825260209091200155600680548061067d5761067d611627565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101919091550190556001016104c1565b50506106c76001600555565b50565b6000336103a4818585610e2f565b6106e0610eda565b8260000361071a576040517feca6f47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107447f00000000000000000000000000000000000000000000000000000000000000008461158e565b1561077b576040517f90823f3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107a77f0000000000000000000000000000000000000000000000000000000000000000856115d1565b90508181146107e2576040517f5ebc687200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107ec3385610f1d565b60005b81811015610a9b576000811180156108435750838382818110610814576108146115e5565b90506020020135848460018461082a9190611614565b818110610839576108396115e5565b9050602002013511155b1561087a576040517f451b9d5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd30336108d98888878181106108cd576108cd6115e5565b90506020020135610cca565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff93841660048201529290911660248301526044820152606401600060405180830381600087803b15801561094d57600080fd5b505af1158015610961573d6000803e3d6000fd5b505050507f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6533600686868581811061099b5761099b6115e5565b90506020020135815481106109b2576109b26115e5565b600091825260209182902001546040805173ffffffffffffffffffffffffffffffffffffffff9094168452918301520160405180910390a1600680546109fa90600190611614565b81548110610a0a57610a0a6115e5565b90600052602060002001546006858584818110610a2957610a296115e5565b9050602002013581548110610a4057610a406115e5565b6000918252602090912001556006805480610a5d57610a5d611627565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101919091550190556001016107ef565b5050610aa76001600555565b505050565b610ab4610eda565b806000819003610af0576040517feca6f47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610c87577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330878786818110610b4b57610b4b6115e5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b16815273ffffffffffffffffffffffffffffffffffffffff958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050506006848483818110610bf357610bf36115e5565b835460018101855560009485526020948590209190940292909201359190920155507fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c33858584818110610c4957610c496115e5565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020918202939093013590840152500160405180910390a1600101610af3565b50610cbb33610cb67f000000000000000000000000000000000000000000000000000000000000000084611656565b610f79565b50610cc66001600555565b5050565b6006546000908210610d08576040517f4e23d03500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60068281548110610d1b57610d1b6115e5565b90600052602060002001549050919050565b60068181548110610d3d57600080fd5b600091825260209091200154905081565b610aa78383836001610fd5565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e295781811015610e1a576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b610e2984848484036000610fd5565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610e7f576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b73ffffffffffffffffffffffffffffffffffffffff8216610ecf576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b610aa783838361111d565b600260055403610f16576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600555565b73ffffffffffffffffffffffffffffffffffffffff8216610f6d576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b610cc68260008361111d565b73ffffffffffffffffffffffffffffffffffffffff8216610fc9576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b610cc66000838361111d565b73ffffffffffffffffffffffffffffffffffffffff8416611025576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b73ffffffffffffffffffffffffffffffffffffffff8316611075576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610e11565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526001602090815260408083209387168352929052208290558015610e29578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161110f91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661115557806002600082825461114a919061166d565b909155506112079050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156111db576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610e11565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166112305760028054829003905561125c565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112bb91815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b818110156112f6578581018301518582016040015282016112da565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461135957600080fd5b919050565b6000806040838503121561137157600080fd5b61137a83611335565b946020939093013593505050565b60008060006060848603121561139d57600080fd5b6113a684611335565b92506113b460208501611335565b9150604084013590509250925092565b6000602082840312156113d657600080fd5b6113df82611335565b9392505050565b6000602082840312156113f857600080fd5b5035919050565b60008083601f84011261141157600080fd5b50813567ffffffffffffffff81111561142957600080fd5b6020830191508360208260051b850101111561144457600080fd5b9250929050565b60008060006040848603121561146057600080fd5b83359250602084013567ffffffffffffffff81111561147e57600080fd5b61148a868287016113ff565b9497909650939450505050565b600080602083850312156114aa57600080fd5b823567ffffffffffffffff8111156114c157600080fd5b6114cd858286016113ff565b90969095509350505050565b600080604083850312156114ec57600080fd5b6114f583611335565b915061150360208401611335565b90509250929050565b600181811c9082168061152057607f821691505b602082108103611559577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261159d5761159d61155f565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826115e0576115e061155f565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103818111156103aa576103aa6115a2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b80820281158282048414176103aa576103aa6115a2565b808201808211156103aa576103aa6115a256fea2646970667358221220969bcbeeb678ce4fb934119592eda258e8ecde536179f3301cb8444f6ad3df2164736f6c63430008190033000000000000000000000000617978b8af11570c2dab7c39163a8bde1d2824070000000000000000000000000000000000000000000000000000000000000400