diff --git a/build/contracts/ERC721Staking.json b/build/contracts/ERC721Staking.json index 9ef6143..285a1fd 100644 --- a/build/contracts/ERC721Staking.json +++ b/build/contracts/ERC721Staking.json @@ -461,16 +461,16 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVal\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVal\",\"type\":\"uint256\"}],\"name\":\"EditCooldownSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"EditNFTSuppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"EditPeriods\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct ERC721Staking.Staker[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct ERC721Staking.Staker[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cooldownSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc721Supported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"periods\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nfts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"redeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nfts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint64[]\",\"name\":\"staketimes\",\"type\":\"uint64[]\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakingMap\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_cooldownSeconds\",\"type\":\"uint256\"}],\"name\":\"updateCooldownSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"updateERC721Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"updatePeriods\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateERC721Support(address,bool)\":{\"details\":\"update ERC721 support\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/stake/ERC721Staking.sol\":\"ERC721Staking\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"project:/contracts/stake/ERC721Staking.sol\":{\"keccak256\":\"0x35e349f830d58eeed75afe85f9dd331e61035558f15ff662e69ede8999cc3ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3e9525d79f05b61c199ae551338713a96df2098e0a500326ea94932d58274a1\",\"dweb:/ipfs/QmdzQ6z3x3KaZVK3YPapsKh6eRvsscSEGhQ2w2bSQ7Powg\"]}},\"version\":1}", - "bytecode": "0x6080604052620151806003553480156200001857600080fd5b50620000396200002d6200006160201b60201c565b6200006960201b60201c565b600180819055506000600260006101000a81548160ff0219169083151502179055506200012d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612b46806200013d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c975abb1161008c5780638da5cb5b116100665780638da5cb5b14610237578063b8221bc414610255578063f029b3b114610273578063f2fde38b146102a3576100ea565b80635c975abb146101df5780636d213f72146101fd578063715018a61461022d576100ea565b806344b780f8116100c857806344b780f81461015757806353d190cf14610173578063550bd7791461018f578063595c1eff146101c3576100ea565b8063150b7a02146100ef5780631f4fa1c31461011f5780632e167f831461013b575b600080fd5b61010960048036038101906101049190611b8d565b6102bf565b6040516101169190611c4b565b60405180910390f35b61013960048036038101906101349190611c66565b6102d3565b005b61015560048036038101906101509190611d0b565b610326565b005b610171600480360381019061016c9190611e57565b6103aa565b005b61018d60048036038101906101889190611f0b565b610cc8565b005b6101a960048036038101906101a49190611f8c565b6114de565b6040516101ba959493929190611ff9565b60405180910390f35b6101dd60048036038101906101d8919061204c565b611589565b005b6101e7611625565b6040516101f4919061209b565b60405180910390f35b610217600480360381019061021291906120b6565b61163c565b604051610224919061209b565b60405180910390f35b61023561165c565b005b61023f611670565b60405161024c91906120e3565b60405180910390f35b61025d611699565b60405161026a91906120fe565b60405180910390f35b61028d60048036038101906102889190612119565b61169f565b60405161029a919061209b565b60405180910390f35b6102bd60048036038101906102b891906120b6565b6116bf565b005b600063150b7a0260e01b9050949350505050565b6102db611743565b60006003549050816003819055507f35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25818360405161031a929190612146565b60405180910390a15050565b61032e611743565b80600660008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c828260405161039e92919061216f565b60405180910390a15050565b6103b26117c1565b6103ba611811565b838390508686905014610402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f99061221b565b60405180910390fd5b81819050868690501461044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610441906122ad565b60405180910390fd5b600033905060008787905067ffffffffffffffff81111561046e5761046d611a62565b5b60405190808252806020026020018201604052801561049c5781602001602082028036833780820191505090505b50905060008888905067ffffffffffffffff8111156104be576104bd611a62565b5b6040519080825280602002602001820160405280156104ec5781602001602082028036833780820191505090505b50905060008989905067ffffffffffffffff81111561050e5761050d611a62565b5b60405190808252806020026020018201604052801561054757816020015b610534611930565b81526020019060019003908161052c5790505b50905060005b8a8a9050811015610c655760011515600560008d8d85818110610573576105726122cd565b5b905060200201602081019061058891906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106099061236e565b60405180910390fd5b600115156006600089898581811061062d5761062c6122cd565b5b90506020020160208101906106429190612119565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90612400565b60405180910390fd5b8a8a828181106106c7576106c66122cd565b5b90506020020160208101906106dc91906120b6565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e86308c8c8681811061070c5761070b6122cd565b5b905060200201356040518463ffffffff1660e01b815260040161073193929190612420565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050505042848281518110610777576107766122cd565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250508686828181106107ac576107ab6122cd565b5b90506020020160208101906107c19190612119565b8482815181106107d4576107d36122cd565b5b60200260200101516107e69190612486565b8382815181106107f9576107f86122cd565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250506040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018c8c84818110610855576108546122cd565b5b905060200201602081019061086a91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a8a84818110610898576108976122cd565b5b9050602002013581526020018583815181106108b7576108b66122cd565b5b602002602001015167ffffffffffffffff1681526020018483815181106108e1576108e06122cd565b5b602002602001015167ffffffffffffffff16815250600460008d8d8581811061090d5761090c6122cd565b5b905060200201602081019061092291906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8b85818110610971576109706122cd565b5b90506020020135815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600460008c8c84818110610a9657610a956122cd565b5b9050602002016020810190610aab91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a8a84818110610afa57610af96122cd565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110610c4757610c466122cd565b5b60200260200101819052508080610c5d906124c4565b91505061054d565b508373ffffffffffffffffffffffffffffffffffffffff167fe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd591682604051610cac9190612651565b60405180910390a250505050610cc061185b565b505050505050565b610cd06117c1565b818190508484905014610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f906126e5565b60405180910390fd5b600033905060008383905067ffffffffffffffff811115610d3c57610d3b611a62565b5b604051908082528060200260200182016040528015610d7557816020015b610d62611930565b815260200190600190039081610d5a5790505b50905060005b8484905081101561147f57600073ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610db557610db46122cd565b5b9050602002016020810190610dca91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610e1957610e186122cd565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612777565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610ed757610ed66122cd565b5b9050602002016020810190610eec91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610f3b57610f3a6122cd565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612809565b60405180910390fd5b42600354600460008a8a86818110610fe557610fe46122cd565b5b9050602002016020810190610ffa91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888886818110611049576110486122cd565b5b90506020020135815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1661108a9190612829565b11156110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906128f1565b60405180910390fd5b8686828181106110de576110dd6122cd565b5b90506020020160208101906110f391906120b6565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e3085888886818110611123576111226122cd565b5b905060200201356040518463ffffffff1660e01b815260040161114893929190612420565b600060405180830381600087803b15801561116257600080fd5b505af1158015611176573d6000803e3d6000fd5b5050505060046000888884818110611191576111906122cd565b5b90506020020160208101906111a691906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106111f5576111f46122cd565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110611342576113416122cd565b5b602002602001018190525060046000888884818110611364576113636122cd565b5b905060200201602081019061137991906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106113c8576113c76122cd565b5b905060200201358152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549067ffffffffffffffff02191690556003820160086101000a81549067ffffffffffffffff021916905550508080611477906124c4565b915050610d7b565b508173ffffffffffffffffffffffffffffffffffffffff167fb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90826040516114c69190612651565b60405180910390a250506114d861185b565b50505050565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900467ffffffffffffffff16908060030160089054906101000a900467ffffffffffffffff16905085565b611591611743565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea588282604051611619929190612911565b60405180910390a15050565b6000600260009054906101000a900460ff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b611664611743565b61166e6000611864565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6116c7611743565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e906129ac565b60405180910390fd5b61174081611864565b50565b61174b611928565b73ffffffffffffffffffffffffffffffffffffffff16611769611670565b73ffffffffffffffffffffffffffffffffffffffff16146117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690612a18565b60405180910390fd5b565b60026001541415611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612a84565b60405180910390fd5b6002600181905550565b611819611625565b15611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090612af0565b60405180910390fd5b565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119de826119b3565b9050919050565b6119ee816119d3565b81146119f957600080fd5b50565b600081359050611a0b816119e5565b92915050565b6000819050919050565b611a2481611a11565b8114611a2f57600080fd5b50565b600081359050611a4181611a1b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a9a82611a51565b810181811067ffffffffffffffff82111715611ab957611ab8611a62565b5b80604052505050565b6000611acc61199f565b9050611ad88282611a91565b919050565b600067ffffffffffffffff821115611af857611af7611a62565b5b611b0182611a51565b9050602081019050919050565b82818337600083830152505050565b6000611b30611b2b84611add565b611ac2565b905082815260208101848484011115611b4c57611b4b611a4c565b5b611b57848285611b0e565b509392505050565b600082601f830112611b7457611b73611a47565b5b8135611b84848260208601611b1d565b91505092915050565b60008060008060808587031215611ba757611ba66119a9565b5b6000611bb5878288016119fc565b9450506020611bc6878288016119fc565b9350506040611bd787828801611a32565b925050606085013567ffffffffffffffff811115611bf857611bf76119ae565b5b611c0487828801611b5f565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c4581611c10565b82525050565b6000602082019050611c606000830184611c3c565b92915050565b600060208284031215611c7c57611c7b6119a9565b5b6000611c8a84828501611a32565b91505092915050565b600067ffffffffffffffff82169050919050565b611cb081611c93565b8114611cbb57600080fd5b50565b600081359050611ccd81611ca7565b92915050565b60008115159050919050565b611ce881611cd3565b8114611cf357600080fd5b50565b600081359050611d0581611cdf565b92915050565b60008060408385031215611d2257611d216119a9565b5b6000611d3085828601611cbe565b9250506020611d4185828601611cf6565b9150509250929050565b600080fd5b600080fd5b60008083601f840112611d6b57611d6a611a47565b5b8235905067ffffffffffffffff811115611d8857611d87611d4b565b5b602083019150836020820283011115611da457611da3611d50565b5b9250929050565b60008083601f840112611dc157611dc0611a47565b5b8235905067ffffffffffffffff811115611dde57611ddd611d4b565b5b602083019150836020820283011115611dfa57611df9611d50565b5b9250929050565b60008083601f840112611e1757611e16611a47565b5b8235905067ffffffffffffffff811115611e3457611e33611d4b565b5b602083019150836020820283011115611e5057611e4f611d50565b5b9250929050565b60008060008060008060608789031215611e7457611e736119a9565b5b600087013567ffffffffffffffff811115611e9257611e916119ae565b5b611e9e89828a01611d55565b9650965050602087013567ffffffffffffffff811115611ec157611ec06119ae565b5b611ecd89828a01611dab565b9450945050604087013567ffffffffffffffff811115611ef057611eef6119ae565b5b611efc89828a01611e01565b92509250509295509295509295565b60008060008060408587031215611f2557611f246119a9565b5b600085013567ffffffffffffffff811115611f4357611f426119ae565b5b611f4f87828801611d55565b9450945050602085013567ffffffffffffffff811115611f7257611f716119ae565b5b611f7e87828801611dab565b925092505092959194509250565b60008060408385031215611fa357611fa26119a9565b5b6000611fb1858286016119fc565b9250506020611fc285828601611a32565b9150509250929050565b611fd5816119d3565b82525050565b611fe481611a11565b82525050565b611ff381611c93565b82525050565b600060a08201905061200e6000830188611fcc565b61201b6020830187611fcc565b6120286040830186611fdb565b6120356060830185611fea565b6120426080830184611fea565b9695505050505050565b60008060408385031215612063576120626119a9565b5b6000612071858286016119fc565b925050602061208285828601611cf6565b9150509250929050565b61209581611cd3565b82525050565b60006020820190506120b0600083018461208c565b92915050565b6000602082840312156120cc576120cb6119a9565b5b60006120da848285016119fc565b91505092915050565b60006020820190506120f86000830184611fcc565b92915050565b60006020820190506121136000830184611fdb565b92915050565b60006020828403121561212f5761212e6119a9565b5b600061213d84828501611cbe565b91505092915050565b600060408201905061215b6000830185611fdb565b6121686020830184611fdb565b9392505050565b60006040820190506121846000830185611fea565b612191602083018461208c565b9392505050565b600082825260208201905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20746f60008201527f6b656e496473206c656e67746800000000000000000000000000000000000000602082015250565b6000612205602d83612198565b9150612210826121a9565b604082019050919050565b60006020820190508181036000830152612234816121f8565b9050919050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20737460008201527f616b6574696d6573206c656e6774680000000000000000000000000000000000602082015250565b6000612297602f83612198565b91506122a28261223b565b604082019050919050565b600060208201905081810360008301526122c68161228a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315374616b696e673a206e6674206973206e6f7420737570706f7260008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612358602383612198565b9150612363826122fc565b604082019050919050565b600060208201905081810360008301526123878161234b565b9050919050565b7f4552433732315374616b696e673a207374616b6574696d65206973206e6f742060008201527f737570706f727465640000000000000000000000000000000000000000000000602082015250565b60006123ea602983612198565b91506123f58261238e565b604082019050919050565b60006020820190508181036000830152612419816123dd565b9050919050565b60006060820190506124356000830186611fcc565b6124426020830185611fcc565b61244f6040830184611fdb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061249182611c93565b915061249c83611c93565b92508267ffffffffffffffff038211156124b9576124b8612457565b5b828201905092915050565b60006124cf82611a11565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561250257612501612457565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612542816119d3565b82525050565b61255181611a11565b82525050565b61256081611c93565b82525050565b60a08201600082015161257c6000850182612539565b50602082015161258f6020850182612539565b5060408201516125a26040850182612548565b5060608201516125b56060850182612557565b5060808201516125c86080850182612557565b50505050565b60006125da8383612566565b60a08301905092915050565b6000602082019050919050565b60006125fe8261250d565b6126088185612518565b935061261383612529565b8060005b8381101561264457815161262b88826125ce565b9750612636836125e6565b925050600181019050612617565b5085935050505092915050565b6000602082019050818103600083015261266b81846125f3565b905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20696460008201527f73206c656e677468000000000000000000000000000000000000000000000000602082015250565b60006126cf602883612198565b91506126da82612673565b604082019050919050565b600060208201905081810360008301526126fe816126c2565b9050919050565b7f4552433732315374616b696e673a20746f6b656e4964206973206e6f7420766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b6000612761602383612198565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f4552433732315374616b696e673a2075736572206973206e6f7420746865206f60008201527f776e6572206f662074686973206e667400000000000000000000000000000000602082015250565b60006127f3603083612198565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b600061283482611a11565b915061283f83611a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561287457612873612457565b5b828201905092915050565b7f4552433732315374616b696e673a20636f6f6c646f776e2074696d652069732060008201527f6e6f742072656163686564000000000000000000000000000000000000000000602082015250565b60006128db602b83612198565b91506128e68261287f565b604082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b60006040820190506129266000830185611fcc565b612933602083018461208c565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612996602683612198565b91506129a18261293a565b604082019050919050565b600060208201905081810360008301526129c581612989565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a02602083612198565b9150612a0d826129cc565b602082019050919050565b60006020820190508181036000830152612a31816129f5565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612a6e601f83612198565b9150612a7982612a38565b602082019050919050565b60006020820190508181036000830152612a9d81612a61565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612ada601083612198565b9150612ae582612aa4565b602082019050919050565b60006020820190508181036000830152612b0981612acd565b905091905056fea2646970667358221220f2918ce32cc6679869b1c42802a2eb5f4b64d03699eb3df27d6234ca0ce0dc9864736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c975abb1161008c5780638da5cb5b116100665780638da5cb5b14610237578063b8221bc414610255578063f029b3b114610273578063f2fde38b146102a3576100ea565b80635c975abb146101df5780636d213f72146101fd578063715018a61461022d576100ea565b806344b780f8116100c857806344b780f81461015757806353d190cf14610173578063550bd7791461018f578063595c1eff146101c3576100ea565b8063150b7a02146100ef5780631f4fa1c31461011f5780632e167f831461013b575b600080fd5b61010960048036038101906101049190611b8d565b6102bf565b6040516101169190611c4b565b60405180910390f35b61013960048036038101906101349190611c66565b6102d3565b005b61015560048036038101906101509190611d0b565b610326565b005b610171600480360381019061016c9190611e57565b6103aa565b005b61018d60048036038101906101889190611f0b565b610cc8565b005b6101a960048036038101906101a49190611f8c565b6114de565b6040516101ba959493929190611ff9565b60405180910390f35b6101dd60048036038101906101d8919061204c565b611589565b005b6101e7611625565b6040516101f4919061209b565b60405180910390f35b610217600480360381019061021291906120b6565b61163c565b604051610224919061209b565b60405180910390f35b61023561165c565b005b61023f611670565b60405161024c91906120e3565b60405180910390f35b61025d611699565b60405161026a91906120fe565b60405180910390f35b61028d60048036038101906102889190612119565b61169f565b60405161029a919061209b565b60405180910390f35b6102bd60048036038101906102b891906120b6565b6116bf565b005b600063150b7a0260e01b9050949350505050565b6102db611743565b60006003549050816003819055507f35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25818360405161031a929190612146565b60405180910390a15050565b61032e611743565b80600660008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c828260405161039e92919061216f565b60405180910390a15050565b6103b26117c1565b6103ba611811565b838390508686905014610402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f99061221b565b60405180910390fd5b81819050868690501461044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610441906122ad565b60405180910390fd5b600033905060008787905067ffffffffffffffff81111561046e5761046d611a62565b5b60405190808252806020026020018201604052801561049c5781602001602082028036833780820191505090505b50905060008888905067ffffffffffffffff8111156104be576104bd611a62565b5b6040519080825280602002602001820160405280156104ec5781602001602082028036833780820191505090505b50905060008989905067ffffffffffffffff81111561050e5761050d611a62565b5b60405190808252806020026020018201604052801561054757816020015b610534611930565b81526020019060019003908161052c5790505b50905060005b8a8a9050811015610c655760011515600560008d8d85818110610573576105726122cd565b5b905060200201602081019061058891906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106099061236e565b60405180910390fd5b600115156006600089898581811061062d5761062c6122cd565b5b90506020020160208101906106429190612119565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90612400565b60405180910390fd5b8a8a828181106106c7576106c66122cd565b5b90506020020160208101906106dc91906120b6565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e86308c8c8681811061070c5761070b6122cd565b5b905060200201356040518463ffffffff1660e01b815260040161073193929190612420565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050505042848281518110610777576107766122cd565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250508686828181106107ac576107ab6122cd565b5b90506020020160208101906107c19190612119565b8482815181106107d4576107d36122cd565b5b60200260200101516107e69190612486565b8382815181106107f9576107f86122cd565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250506040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018c8c84818110610855576108546122cd565b5b905060200201602081019061086a91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a8a84818110610898576108976122cd565b5b9050602002013581526020018583815181106108b7576108b66122cd565b5b602002602001015167ffffffffffffffff1681526020018483815181106108e1576108e06122cd565b5b602002602001015167ffffffffffffffff16815250600460008d8d8581811061090d5761090c6122cd565b5b905060200201602081019061092291906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8b85818110610971576109706122cd565b5b90506020020135815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600460008c8c84818110610a9657610a956122cd565b5b9050602002016020810190610aab91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a8a84818110610afa57610af96122cd565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110610c4757610c466122cd565b5b60200260200101819052508080610c5d906124c4565b91505061054d565b508373ffffffffffffffffffffffffffffffffffffffff167fe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd591682604051610cac9190612651565b60405180910390a250505050610cc061185b565b505050505050565b610cd06117c1565b818190508484905014610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f906126e5565b60405180910390fd5b600033905060008383905067ffffffffffffffff811115610d3c57610d3b611a62565b5b604051908082528060200260200182016040528015610d7557816020015b610d62611930565b815260200190600190039081610d5a5790505b50905060005b8484905081101561147f57600073ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610db557610db46122cd565b5b9050602002016020810190610dca91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610e1957610e186122cd565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612777565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610ed757610ed66122cd565b5b9050602002016020810190610eec91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610f3b57610f3a6122cd565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612809565b60405180910390fd5b42600354600460008a8a86818110610fe557610fe46122cd565b5b9050602002016020810190610ffa91906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888886818110611049576110486122cd565b5b90506020020135815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1661108a9190612829565b11156110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906128f1565b60405180910390fd5b8686828181106110de576110dd6122cd565b5b90506020020160208101906110f391906120b6565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e3085888886818110611123576111226122cd565b5b905060200201356040518463ffffffff1660e01b815260040161114893929190612420565b600060405180830381600087803b15801561116257600080fd5b505af1158015611176573d6000803e3d6000fd5b5050505060046000888884818110611191576111906122cd565b5b90506020020160208101906111a691906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106111f5576111f46122cd565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110611342576113416122cd565b5b602002602001018190525060046000888884818110611364576113636122cd565b5b905060200201602081019061137991906120b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106113c8576113c76122cd565b5b905060200201358152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549067ffffffffffffffff02191690556003820160086101000a81549067ffffffffffffffff021916905550508080611477906124c4565b915050610d7b565b508173ffffffffffffffffffffffffffffffffffffffff167fb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90826040516114c69190612651565b60405180910390a250506114d861185b565b50505050565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900467ffffffffffffffff16908060030160089054906101000a900467ffffffffffffffff16905085565b611591611743565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea588282604051611619929190612911565b60405180910390a15050565b6000600260009054906101000a900460ff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b611664611743565b61166e6000611864565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6116c7611743565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e906129ac565b60405180910390fd5b61174081611864565b50565b61174b611928565b73ffffffffffffffffffffffffffffffffffffffff16611769611670565b73ffffffffffffffffffffffffffffffffffffffff16146117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690612a18565b60405180910390fd5b565b60026001541415611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612a84565b60405180910390fd5b6002600181905550565b611819611625565b15611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090612af0565b60405180910390fd5b565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119de826119b3565b9050919050565b6119ee816119d3565b81146119f957600080fd5b50565b600081359050611a0b816119e5565b92915050565b6000819050919050565b611a2481611a11565b8114611a2f57600080fd5b50565b600081359050611a4181611a1b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a9a82611a51565b810181811067ffffffffffffffff82111715611ab957611ab8611a62565b5b80604052505050565b6000611acc61199f565b9050611ad88282611a91565b919050565b600067ffffffffffffffff821115611af857611af7611a62565b5b611b0182611a51565b9050602081019050919050565b82818337600083830152505050565b6000611b30611b2b84611add565b611ac2565b905082815260208101848484011115611b4c57611b4b611a4c565b5b611b57848285611b0e565b509392505050565b600082601f830112611b7457611b73611a47565b5b8135611b84848260208601611b1d565b91505092915050565b60008060008060808587031215611ba757611ba66119a9565b5b6000611bb5878288016119fc565b9450506020611bc6878288016119fc565b9350506040611bd787828801611a32565b925050606085013567ffffffffffffffff811115611bf857611bf76119ae565b5b611c0487828801611b5f565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c4581611c10565b82525050565b6000602082019050611c606000830184611c3c565b92915050565b600060208284031215611c7c57611c7b6119a9565b5b6000611c8a84828501611a32565b91505092915050565b600067ffffffffffffffff82169050919050565b611cb081611c93565b8114611cbb57600080fd5b50565b600081359050611ccd81611ca7565b92915050565b60008115159050919050565b611ce881611cd3565b8114611cf357600080fd5b50565b600081359050611d0581611cdf565b92915050565b60008060408385031215611d2257611d216119a9565b5b6000611d3085828601611cbe565b9250506020611d4185828601611cf6565b9150509250929050565b600080fd5b600080fd5b60008083601f840112611d6b57611d6a611a47565b5b8235905067ffffffffffffffff811115611d8857611d87611d4b565b5b602083019150836020820283011115611da457611da3611d50565b5b9250929050565b60008083601f840112611dc157611dc0611a47565b5b8235905067ffffffffffffffff811115611dde57611ddd611d4b565b5b602083019150836020820283011115611dfa57611df9611d50565b5b9250929050565b60008083601f840112611e1757611e16611a47565b5b8235905067ffffffffffffffff811115611e3457611e33611d4b565b5b602083019150836020820283011115611e5057611e4f611d50565b5b9250929050565b60008060008060008060608789031215611e7457611e736119a9565b5b600087013567ffffffffffffffff811115611e9257611e916119ae565b5b611e9e89828a01611d55565b9650965050602087013567ffffffffffffffff811115611ec157611ec06119ae565b5b611ecd89828a01611dab565b9450945050604087013567ffffffffffffffff811115611ef057611eef6119ae565b5b611efc89828a01611e01565b92509250509295509295509295565b60008060008060408587031215611f2557611f246119a9565b5b600085013567ffffffffffffffff811115611f4357611f426119ae565b5b611f4f87828801611d55565b9450945050602085013567ffffffffffffffff811115611f7257611f716119ae565b5b611f7e87828801611dab565b925092505092959194509250565b60008060408385031215611fa357611fa26119a9565b5b6000611fb1858286016119fc565b9250506020611fc285828601611a32565b9150509250929050565b611fd5816119d3565b82525050565b611fe481611a11565b82525050565b611ff381611c93565b82525050565b600060a08201905061200e6000830188611fcc565b61201b6020830187611fcc565b6120286040830186611fdb565b6120356060830185611fea565b6120426080830184611fea565b9695505050505050565b60008060408385031215612063576120626119a9565b5b6000612071858286016119fc565b925050602061208285828601611cf6565b9150509250929050565b61209581611cd3565b82525050565b60006020820190506120b0600083018461208c565b92915050565b6000602082840312156120cc576120cb6119a9565b5b60006120da848285016119fc565b91505092915050565b60006020820190506120f86000830184611fcc565b92915050565b60006020820190506121136000830184611fdb565b92915050565b60006020828403121561212f5761212e6119a9565b5b600061213d84828501611cbe565b91505092915050565b600060408201905061215b6000830185611fdb565b6121686020830184611fdb565b9392505050565b60006040820190506121846000830185611fea565b612191602083018461208c565b9392505050565b600082825260208201905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20746f60008201527f6b656e496473206c656e67746800000000000000000000000000000000000000602082015250565b6000612205602d83612198565b9150612210826121a9565b604082019050919050565b60006020820190508181036000830152612234816121f8565b9050919050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20737460008201527f616b6574696d6573206c656e6774680000000000000000000000000000000000602082015250565b6000612297602f83612198565b91506122a28261223b565b604082019050919050565b600060208201905081810360008301526122c68161228a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315374616b696e673a206e6674206973206e6f7420737570706f7260008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612358602383612198565b9150612363826122fc565b604082019050919050565b600060208201905081810360008301526123878161234b565b9050919050565b7f4552433732315374616b696e673a207374616b6574696d65206973206e6f742060008201527f737570706f727465640000000000000000000000000000000000000000000000602082015250565b60006123ea602983612198565b91506123f58261238e565b604082019050919050565b60006020820190508181036000830152612419816123dd565b9050919050565b60006060820190506124356000830186611fcc565b6124426020830185611fcc565b61244f6040830184611fdb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061249182611c93565b915061249c83611c93565b92508267ffffffffffffffff038211156124b9576124b8612457565b5b828201905092915050565b60006124cf82611a11565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561250257612501612457565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612542816119d3565b82525050565b61255181611a11565b82525050565b61256081611c93565b82525050565b60a08201600082015161257c6000850182612539565b50602082015161258f6020850182612539565b5060408201516125a26040850182612548565b5060608201516125b56060850182612557565b5060808201516125c86080850182612557565b50505050565b60006125da8383612566565b60a08301905092915050565b6000602082019050919050565b60006125fe8261250d565b6126088185612518565b935061261383612529565b8060005b8381101561264457815161262b88826125ce565b9750612636836125e6565b925050600181019050612617565b5085935050505092915050565b6000602082019050818103600083015261266b81846125f3565b905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20696460008201527f73206c656e677468000000000000000000000000000000000000000000000000602082015250565b60006126cf602883612198565b91506126da82612673565b604082019050919050565b600060208201905081810360008301526126fe816126c2565b9050919050565b7f4552433732315374616b696e673a20746f6b656e4964206973206e6f7420766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b6000612761602383612198565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f4552433732315374616b696e673a2075736572206973206e6f7420746865206f60008201527f776e6572206f662074686973206e667400000000000000000000000000000000602082015250565b60006127f3603083612198565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b600061283482611a11565b915061283f83611a11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561287457612873612457565b5b828201905092915050565b7f4552433732315374616b696e673a20636f6f6c646f776e2074696d652069732060008201527f6e6f742072656163686564000000000000000000000000000000000000000000602082015250565b60006128db602b83612198565b91506128e68261287f565b604082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b60006040820190506129266000830185611fcc565b612933602083018461208c565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612996602683612198565b91506129a18261293a565b604082019050919050565b600060208201905081810360008301526129c581612989565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a02602083612198565b9150612a0d826129cc565b602082019050919050565b60006020820190508181036000830152612a31816129f5565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612a6e601f83612198565b9150612a7982612a38565b602082019050919050565b60006020820190508181036000830152612a9d81612a61565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612ada601083612198565b9150612ae582612aa4565b602082019050919050565b60006020820190508181036000830152612b0981612acd565b905091905056fea2646970667358221220f2918ce32cc6679869b1c42802a2eb5f4b64d03699eb3df27d6234ca0ce0dc9864736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVal\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVal\",\"type\":\"uint256\"}],\"name\":\"EditCooldownSeconds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"EditNFTSuppout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"EditPeriods\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct ERC721Staking.Staker[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct ERC721Staking.Staker[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cooldownSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc721Supported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"periods\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nfts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"redeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nfts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint64[]\",\"name\":\"staketimes\",\"type\":\"uint64[]\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakingMap\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakeTime\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_cooldownSeconds\",\"type\":\"uint256\"}],\"name\":\"updateCooldownSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nftToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"updateERC721Support\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"updatePeriods\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateERC721Support(address,bool)\":{\"details\":\"update ERC721 support\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/stake/ERC721Staking.sol\":\"ERC721Staking\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"project:/contracts/stake/ERC721Staking.sol\":{\"keccak256\":\"0xfb91d7a06d02f85e25fe126c8fdb2d2f10b9ef6092d0699b2734de64e7c06af9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07cdf490ee864aa71aef67691ba4d5af5f3ebd733c84285dde0829fb619bf384\",\"dweb:/ipfs/QmNwhcopNWV7VN2C8GEPMdkUTKxs8bgCT7SqkJzbykbYBT\"]}},\"version\":1}", + "bytecode": "0x6080604052620151806003553480156200001857600080fd5b50620000396200002d6200006160201b60201c565b6200006960201b60201c565b600180819055506000600260006101000a81548160ff0219169083151502179055506200012d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612ae3806200013d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c975abb1161008c5780638da5cb5b116100665780638da5cb5b14610237578063b8221bc414610255578063f029b3b114610273578063f2fde38b146102a3576100ea565b80635c975abb146101df5780636d213f72146101fd578063715018a61461022d576100ea565b806344b780f8116100c857806344b780f81461015757806353d190cf14610173578063550bd7791461018f578063595c1eff146101c3576100ea565b8063150b7a02146100ef5780631f4fa1c31461011f5780632e167f831461013b575b600080fd5b61010960048036038101906101049190611b68565b6102bf565b6040516101169190611c26565b60405180910390f35b61013960048036038101906101349190611c41565b6102d3565b005b61015560048036038101906101509190611ce6565b610326565b005b610171600480360381019061016c9190611e32565b6103aa565b005b61018d60048036038101906101889190611ee6565b610ca3565b005b6101a960048036038101906101a49190611f67565b6114b9565b6040516101ba959493929190611fd4565b60405180910390f35b6101dd60048036038101906101d89190612027565b611564565b005b6101e7611600565b6040516101f49190612076565b60405180910390f35b61021760048036038101906102129190612091565b611617565b6040516102249190612076565b60405180910390f35b610235611637565b005b61023f61164b565b60405161024c91906120be565b60405180910390f35b61025d611674565b60405161026a91906120d9565b60405180910390f35b61028d600480360381019061028891906120f4565b61167a565b60405161029a9190612076565b60405180910390f35b6102bd60048036038101906102b89190612091565b61169a565b005b600063150b7a0260e01b9050949350505050565b6102db61171e565b60006003549050816003819055507f35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25818360405161031a929190612121565b60405180910390a15050565b61032e61171e565b80600660008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c828260405161039e92919061214a565b60405180910390a15050565b6103b261179c565b6103ba6117ec565b838390508686905014610402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f9906121f6565b60405180910390fd5b81819050868690501461044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190612288565b60405180910390fd5b600033905060008787905067ffffffffffffffff81111561046e5761046d611a3d565b5b60405190808252806020026020018201604052801561049c5781602001602082028036833780820191505090505b50905060008888905067ffffffffffffffff8111156104be576104bd611a3d565b5b6040519080825280602002602001820160405280156104ec5781602001602082028036833780820191505090505b50905060008989905067ffffffffffffffff81111561050e5761050d611a3d565b5b60405190808252806020026020018201604052801561054757816020015b61053461190b565b81526020019060019003908161052c5790505b50905060005b8a8a9050811015610c405760011515600560008d8d85818110610573576105726122a8565b5b90506020020160208101906105889190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060990612349565b60405180910390fd5b600115156006600089898581811061062d5761062c6122a8565b5b905060200201602081019061064291906120f4565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab906123db565b60405180910390fd5b8a8a828181106106c7576106c66122a8565b5b90506020020160208101906106dc9190612091565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e86308c8c8681811061070c5761070b6122a8565b5b905060200201356040518463ffffffff1660e01b8152600401610731939291906123fb565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050505042848281518110610777576107766122a8565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250508686828181106107ac576107ab6122a8565b5b90506020020160208101906107c191906120f4565b8382815181106107d4576107d36122a8565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250506040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018c8c848181106108305761082f6122a8565b5b90506020020160208101906108459190612091565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a8a84818110610873576108726122a8565b5b905060200201358152602001858381518110610892576108916122a8565b5b602002602001015167ffffffffffffffff1681526020018483815181106108bc576108bb6122a8565b5b602002602001015167ffffffffffffffff16815250600460008d8d858181106108e8576108e76122a8565b5b90506020020160208101906108fd9190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8b8581811061094c5761094b6122a8565b5b90506020020135815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600460008c8c84818110610a7157610a706122a8565b5b9050602002016020810190610a869190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a8a84818110610ad557610ad46122a8565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110610c2257610c216122a8565b5b60200260200101819052508080610c3890612461565b91505061054d565b508373ffffffffffffffffffffffffffffffffffffffff167fe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd591682604051610c8791906125ee565b60405180910390a250505050610c9b611836565b505050505050565b610cab61179c565b818190508484905014610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612682565b60405180910390fd5b600033905060008383905067ffffffffffffffff811115610d1757610d16611a3d565b5b604051908082528060200260200182016040528015610d5057816020015b610d3d61190b565b815260200190600190039081610d355790505b50905060005b8484905081101561145a57600073ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610d9057610d8f6122a8565b5b9050602002016020810190610da59190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610df457610df36122a8565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b90612714565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610eb257610eb16122a8565b5b9050602002016020810190610ec79190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610f1657610f156122a8565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c906127a6565b60405180910390fd5b42600354600460008a8a86818110610fc057610fbf6122a8565b5b9050602002016020810190610fd59190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888886818110611024576110236122a8565b5b90506020020135815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1661106591906127c6565b11156110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109d9061288e565b60405180910390fd5b8686828181106110b9576110b86122a8565b5b90506020020160208101906110ce9190612091565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e30858888868181106110fe576110fd6122a8565b5b905060200201356040518463ffffffff1660e01b8152600401611123939291906123fb565b600060405180830381600087803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506004600088888481811061116c5761116b6122a8565b5b90506020020160208101906111819190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106111d0576111cf6122a8565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505082828151811061131d5761131c6122a8565b5b60200260200101819052506004600088888481811061133f5761133e6122a8565b5b90506020020160208101906113549190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106113a3576113a26122a8565b5b905060200201358152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549067ffffffffffffffff02191690556003820160086101000a81549067ffffffffffffffff02191690555050808061145290612461565b915050610d56565b508173ffffffffffffffffffffffffffffffffffffffff167fb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90826040516114a191906125ee565b60405180910390a250506114b3611836565b50505050565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900467ffffffffffffffff16908060030160089054906101000a900467ffffffffffffffff16905085565b61156c61171e565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea5882826040516115f49291906128ae565b60405180910390a15050565b6000600260009054906101000a900460ff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b61163f61171e565b611649600061183f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6116a261171e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612949565b60405180910390fd5b61171b8161183f565b50565b611726611903565b73ffffffffffffffffffffffffffffffffffffffff1661174461164b565b73ffffffffffffffffffffffffffffffffffffffff161461179a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611791906129b5565b60405180910390fd5b565b600260015414156117e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d990612a21565b60405180910390fd5b6002600181905550565b6117f4611600565b15611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90612a8d565b60405180910390fd5b565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b98261198e565b9050919050565b6119c9816119ae565b81146119d457600080fd5b50565b6000813590506119e6816119c0565b92915050565b6000819050919050565b6119ff816119ec565b8114611a0a57600080fd5b50565b600081359050611a1c816119f6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a7582611a2c565b810181811067ffffffffffffffff82111715611a9457611a93611a3d565b5b80604052505050565b6000611aa761197a565b9050611ab38282611a6c565b919050565b600067ffffffffffffffff821115611ad357611ad2611a3d565b5b611adc82611a2c565b9050602081019050919050565b82818337600083830152505050565b6000611b0b611b0684611ab8565b611a9d565b905082815260208101848484011115611b2757611b26611a27565b5b611b32848285611ae9565b509392505050565b600082601f830112611b4f57611b4e611a22565b5b8135611b5f848260208601611af8565b91505092915050565b60008060008060808587031215611b8257611b81611984565b5b6000611b90878288016119d7565b9450506020611ba1878288016119d7565b9350506040611bb287828801611a0d565b925050606085013567ffffffffffffffff811115611bd357611bd2611989565b5b611bdf87828801611b3a565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c2081611beb565b82525050565b6000602082019050611c3b6000830184611c17565b92915050565b600060208284031215611c5757611c56611984565b5b6000611c6584828501611a0d565b91505092915050565b600067ffffffffffffffff82169050919050565b611c8b81611c6e565b8114611c9657600080fd5b50565b600081359050611ca881611c82565b92915050565b60008115159050919050565b611cc381611cae565b8114611cce57600080fd5b50565b600081359050611ce081611cba565b92915050565b60008060408385031215611cfd57611cfc611984565b5b6000611d0b85828601611c99565b9250506020611d1c85828601611cd1565b9150509250929050565b600080fd5b600080fd5b60008083601f840112611d4657611d45611a22565b5b8235905067ffffffffffffffff811115611d6357611d62611d26565b5b602083019150836020820283011115611d7f57611d7e611d2b565b5b9250929050565b60008083601f840112611d9c57611d9b611a22565b5b8235905067ffffffffffffffff811115611db957611db8611d26565b5b602083019150836020820283011115611dd557611dd4611d2b565b5b9250929050565b60008083601f840112611df257611df1611a22565b5b8235905067ffffffffffffffff811115611e0f57611e0e611d26565b5b602083019150836020820283011115611e2b57611e2a611d2b565b5b9250929050565b60008060008060008060608789031215611e4f57611e4e611984565b5b600087013567ffffffffffffffff811115611e6d57611e6c611989565b5b611e7989828a01611d30565b9650965050602087013567ffffffffffffffff811115611e9c57611e9b611989565b5b611ea889828a01611d86565b9450945050604087013567ffffffffffffffff811115611ecb57611eca611989565b5b611ed789828a01611ddc565b92509250509295509295509295565b60008060008060408587031215611f0057611eff611984565b5b600085013567ffffffffffffffff811115611f1e57611f1d611989565b5b611f2a87828801611d30565b9450945050602085013567ffffffffffffffff811115611f4d57611f4c611989565b5b611f5987828801611d86565b925092505092959194509250565b60008060408385031215611f7e57611f7d611984565b5b6000611f8c858286016119d7565b9250506020611f9d85828601611a0d565b9150509250929050565b611fb0816119ae565b82525050565b611fbf816119ec565b82525050565b611fce81611c6e565b82525050565b600060a082019050611fe96000830188611fa7565b611ff66020830187611fa7565b6120036040830186611fb6565b6120106060830185611fc5565b61201d6080830184611fc5565b9695505050505050565b6000806040838503121561203e5761203d611984565b5b600061204c858286016119d7565b925050602061205d85828601611cd1565b9150509250929050565b61207081611cae565b82525050565b600060208201905061208b6000830184612067565b92915050565b6000602082840312156120a7576120a6611984565b5b60006120b5848285016119d7565b91505092915050565b60006020820190506120d36000830184611fa7565b92915050565b60006020820190506120ee6000830184611fb6565b92915050565b60006020828403121561210a57612109611984565b5b600061211884828501611c99565b91505092915050565b60006040820190506121366000830185611fb6565b6121436020830184611fb6565b9392505050565b600060408201905061215f6000830185611fc5565b61216c6020830184612067565b9392505050565b600082825260208201905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20746f60008201527f6b656e496473206c656e67746800000000000000000000000000000000000000602082015250565b60006121e0602d83612173565b91506121eb82612184565b604082019050919050565b6000602082019050818103600083015261220f816121d3565b9050919050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20737460008201527f616b6574696d6573206c656e6774680000000000000000000000000000000000602082015250565b6000612272602f83612173565b915061227d82612216565b604082019050919050565b600060208201905081810360008301526122a181612265565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315374616b696e673a206e6674206973206e6f7420737570706f7260008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612333602383612173565b915061233e826122d7565b604082019050919050565b6000602082019050818103600083015261236281612326565b9050919050565b7f4552433732315374616b696e673a207374616b6574696d65206973206e6f742060008201527f737570706f727465640000000000000000000000000000000000000000000000602082015250565b60006123c5602983612173565b91506123d082612369565b604082019050919050565b600060208201905081810360008301526123f4816123b8565b9050919050565b60006060820190506124106000830186611fa7565b61241d6020830185611fa7565b61242a6040830184611fb6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061246c826119ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561249f5761249e612432565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124df816119ae565b82525050565b6124ee816119ec565b82525050565b6124fd81611c6e565b82525050565b60a08201600082015161251960008501826124d6565b50602082015161252c60208501826124d6565b50604082015161253f60408501826124e5565b50606082015161255260608501826124f4565b50608082015161256560808501826124f4565b50505050565b60006125778383612503565b60a08301905092915050565b6000602082019050919050565b600061259b826124aa565b6125a581856124b5565b93506125b0836124c6565b8060005b838110156125e15781516125c8888261256b565b97506125d383612583565b9250506001810190506125b4565b5085935050505092915050565b600060208201905081810360008301526126088184612590565b905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20696460008201527f73206c656e677468000000000000000000000000000000000000000000000000602082015250565b600061266c602883612173565b915061267782612610565b604082019050919050565b6000602082019050818103600083015261269b8161265f565b9050919050565b7f4552433732315374616b696e673a20746f6b656e4964206973206e6f7420766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b60006126fe602383612173565b9150612709826126a2565b604082019050919050565b6000602082019050818103600083015261272d816126f1565b9050919050565b7f4552433732315374616b696e673a2075736572206973206e6f7420746865206f60008201527f776e6572206f662074686973206e667400000000000000000000000000000000602082015250565b6000612790603083612173565b915061279b82612734565b604082019050919050565b600060208201905081810360008301526127bf81612783565b9050919050565b60006127d1826119ec565b91506127dc836119ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561281157612810612432565b5b828201905092915050565b7f4552433732315374616b696e673a20636f6f6c646f776e2074696d652069732060008201527f6e6f742072656163686564000000000000000000000000000000000000000000602082015250565b6000612878602b83612173565b91506128838261281c565b604082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b60006040820190506128c36000830185611fa7565b6128d06020830184612067565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612933602683612173565b915061293e826128d7565b604082019050919050565b6000602082019050818103600083015261296281612926565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061299f602083612173565b91506129aa82612969565b602082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612a0b601f83612173565b9150612a16826129d5565b602082019050919050565b60006020820190508181036000830152612a3a816129fe565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612a77601083612173565b9150612a8282612a41565b602082019050919050565b60006020820190508181036000830152612aa681612a6a565b905091905056fea2646970667358221220d04bd98ce454449a2fc11c6ce064c80ab5969bdbdd2c0a2233b6efb8bc59b5de64736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c975abb1161008c5780638da5cb5b116100665780638da5cb5b14610237578063b8221bc414610255578063f029b3b114610273578063f2fde38b146102a3576100ea565b80635c975abb146101df5780636d213f72146101fd578063715018a61461022d576100ea565b806344b780f8116100c857806344b780f81461015757806353d190cf14610173578063550bd7791461018f578063595c1eff146101c3576100ea565b8063150b7a02146100ef5780631f4fa1c31461011f5780632e167f831461013b575b600080fd5b61010960048036038101906101049190611b68565b6102bf565b6040516101169190611c26565b60405180910390f35b61013960048036038101906101349190611c41565b6102d3565b005b61015560048036038101906101509190611ce6565b610326565b005b610171600480360381019061016c9190611e32565b6103aa565b005b61018d60048036038101906101889190611ee6565b610ca3565b005b6101a960048036038101906101a49190611f67565b6114b9565b6040516101ba959493929190611fd4565b60405180910390f35b6101dd60048036038101906101d89190612027565b611564565b005b6101e7611600565b6040516101f49190612076565b60405180910390f35b61021760048036038101906102129190612091565b611617565b6040516102249190612076565b60405180910390f35b610235611637565b005b61023f61164b565b60405161024c91906120be565b60405180910390f35b61025d611674565b60405161026a91906120d9565b60405180910390f35b61028d600480360381019061028891906120f4565b61167a565b60405161029a9190612076565b60405180910390f35b6102bd60048036038101906102b89190612091565b61169a565b005b600063150b7a0260e01b9050949350505050565b6102db61171e565b60006003549050816003819055507f35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25818360405161031a929190612121565b60405180910390a15050565b61032e61171e565b80600660008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c828260405161039e92919061214a565b60405180910390a15050565b6103b261179c565b6103ba6117ec565b838390508686905014610402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f9906121f6565b60405180910390fd5b81819050868690501461044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190612288565b60405180910390fd5b600033905060008787905067ffffffffffffffff81111561046e5761046d611a3d565b5b60405190808252806020026020018201604052801561049c5781602001602082028036833780820191505090505b50905060008888905067ffffffffffffffff8111156104be576104bd611a3d565b5b6040519080825280602002602001820160405280156104ec5781602001602082028036833780820191505090505b50905060008989905067ffffffffffffffff81111561050e5761050d611a3d565b5b60405190808252806020026020018201604052801561054757816020015b61053461190b565b81526020019060019003908161052c5790505b50905060005b8a8a9050811015610c405760011515600560008d8d85818110610573576105726122a8565b5b90506020020160208101906105889190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060990612349565b60405180910390fd5b600115156006600089898581811061062d5761062c6122a8565b5b905060200201602081019061064291906120f4565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab906123db565b60405180910390fd5b8a8a828181106106c7576106c66122a8565b5b90506020020160208101906106dc9190612091565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e86308c8c8681811061070c5761070b6122a8565b5b905060200201356040518463ffffffff1660e01b8152600401610731939291906123fb565b600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b5050505042848281518110610777576107766122a8565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250508686828181106107ac576107ab6122a8565b5b90506020020160208101906107c191906120f4565b8382815181106107d4576107d36122a8565b5b602002602001019067ffffffffffffffff16908167ffffffffffffffff16815250506040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018c8c848181106108305761082f6122a8565b5b90506020020160208101906108459190612091565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a8a84818110610873576108726122a8565b5b905060200201358152602001858381518110610892576108916122a8565b5b602002602001015167ffffffffffffffff1681526020018483815181106108bc576108bb6122a8565b5b602002602001015167ffffffffffffffff16815250600460008d8d858181106108e8576108e76122a8565b5b90506020020160208101906108fd9190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8b8581811061094c5761094b6122a8565b5b90506020020135815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600460008c8c84818110610a7157610a706122a8565b5b9050602002016020810190610a869190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a8a84818110610ad557610ad46122a8565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050828281518110610c2257610c216122a8565b5b60200260200101819052508080610c3890612461565b91505061054d565b508373ffffffffffffffffffffffffffffffffffffffff167fe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd591682604051610c8791906125ee565b60405180910390a250505050610c9b611836565b505050505050565b610cab61179c565b818190508484905014610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90612682565b60405180910390fd5b600033905060008383905067ffffffffffffffff811115610d1757610d16611a3d565b5b604051908082528060200260200182016040528015610d5057816020015b610d3d61190b565b815260200190600190039081610d355790505b50905060005b8484905081101561145a57600073ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610d9057610d8f6122a8565b5b9050602002016020810190610da59190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610df457610df36122a8565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b90612714565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660046000898985818110610eb257610eb16122a8565b5b9050602002016020810190610ec79190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878785818110610f1657610f156122a8565b5b90506020020135815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c906127a6565b60405180910390fd5b42600354600460008a8a86818110610fc057610fbf6122a8565b5b9050602002016020810190610fd59190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888886818110611024576110236122a8565b5b90506020020135815260200190815260200160002060030160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1661106591906127c6565b11156110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109d9061288e565b60405180910390fd5b8686828181106110b9576110b86122a8565b5b90506020020160208101906110ce9190612091565b73ffffffffffffffffffffffffffffffffffffffff166342842e0e30858888868181106110fe576110fd6122a8565b5b905060200201356040518463ffffffff1660e01b8152600401611123939291906123fb565b600060405180830381600087803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506004600088888481811061116c5761116b6122a8565b5b90506020020160208101906111819190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106111d0576111cf6122a8565b5b9050602002013581526020019081526020016000206040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505082828151811061131d5761131c6122a8565b5b60200260200101819052506004600088888481811061133f5761133e6122a8565b5b90506020020160208101906113549190612091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008686848181106113a3576113a26122a8565b5b905060200201358152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549067ffffffffffffffff02191690556003820160086101000a81549067ffffffffffffffff02191690555050808061145290612461565b915050610d56565b508173ffffffffffffffffffffffffffffffffffffffff167fb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90826040516114a191906125ee565b60405180910390a250506114b3611836565b50505050565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900467ffffffffffffffff16908060030160089054906101000a900467ffffffffffffffff16905085565b61156c61171e565b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea5882826040516115f49291906128ae565b60405180910390a15050565b6000600260009054906101000a900460ff16905090565b60056020528060005260406000206000915054906101000a900460ff1681565b61163f61171e565b611649600061183f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60066020528060005260406000206000915054906101000a900460ff1681565b6116a261171e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612949565b60405180910390fd5b61171b8161183f565b50565b611726611903565b73ffffffffffffffffffffffffffffffffffffffff1661174461164b565b73ffffffffffffffffffffffffffffffffffffffff161461179a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611791906129b5565b60405180910390fd5b565b600260015414156117e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d990612a21565b60405180910390fd5b6002600181905550565b6117f4611600565b15611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90612a8d565b60405180910390fd5b565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b98261198e565b9050919050565b6119c9816119ae565b81146119d457600080fd5b50565b6000813590506119e6816119c0565b92915050565b6000819050919050565b6119ff816119ec565b8114611a0a57600080fd5b50565b600081359050611a1c816119f6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a7582611a2c565b810181811067ffffffffffffffff82111715611a9457611a93611a3d565b5b80604052505050565b6000611aa761197a565b9050611ab38282611a6c565b919050565b600067ffffffffffffffff821115611ad357611ad2611a3d565b5b611adc82611a2c565b9050602081019050919050565b82818337600083830152505050565b6000611b0b611b0684611ab8565b611a9d565b905082815260208101848484011115611b2757611b26611a27565b5b611b32848285611ae9565b509392505050565b600082601f830112611b4f57611b4e611a22565b5b8135611b5f848260208601611af8565b91505092915050565b60008060008060808587031215611b8257611b81611984565b5b6000611b90878288016119d7565b9450506020611ba1878288016119d7565b9350506040611bb287828801611a0d565b925050606085013567ffffffffffffffff811115611bd357611bd2611989565b5b611bdf87828801611b3a565b91505092959194509250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c2081611beb565b82525050565b6000602082019050611c3b6000830184611c17565b92915050565b600060208284031215611c5757611c56611984565b5b6000611c6584828501611a0d565b91505092915050565b600067ffffffffffffffff82169050919050565b611c8b81611c6e565b8114611c9657600080fd5b50565b600081359050611ca881611c82565b92915050565b60008115159050919050565b611cc381611cae565b8114611cce57600080fd5b50565b600081359050611ce081611cba565b92915050565b60008060408385031215611cfd57611cfc611984565b5b6000611d0b85828601611c99565b9250506020611d1c85828601611cd1565b9150509250929050565b600080fd5b600080fd5b60008083601f840112611d4657611d45611a22565b5b8235905067ffffffffffffffff811115611d6357611d62611d26565b5b602083019150836020820283011115611d7f57611d7e611d2b565b5b9250929050565b60008083601f840112611d9c57611d9b611a22565b5b8235905067ffffffffffffffff811115611db957611db8611d26565b5b602083019150836020820283011115611dd557611dd4611d2b565b5b9250929050565b60008083601f840112611df257611df1611a22565b5b8235905067ffffffffffffffff811115611e0f57611e0e611d26565b5b602083019150836020820283011115611e2b57611e2a611d2b565b5b9250929050565b60008060008060008060608789031215611e4f57611e4e611984565b5b600087013567ffffffffffffffff811115611e6d57611e6c611989565b5b611e7989828a01611d30565b9650965050602087013567ffffffffffffffff811115611e9c57611e9b611989565b5b611ea889828a01611d86565b9450945050604087013567ffffffffffffffff811115611ecb57611eca611989565b5b611ed789828a01611ddc565b92509250509295509295509295565b60008060008060408587031215611f0057611eff611984565b5b600085013567ffffffffffffffff811115611f1e57611f1d611989565b5b611f2a87828801611d30565b9450945050602085013567ffffffffffffffff811115611f4d57611f4c611989565b5b611f5987828801611d86565b925092505092959194509250565b60008060408385031215611f7e57611f7d611984565b5b6000611f8c858286016119d7565b9250506020611f9d85828601611a0d565b9150509250929050565b611fb0816119ae565b82525050565b611fbf816119ec565b82525050565b611fce81611c6e565b82525050565b600060a082019050611fe96000830188611fa7565b611ff66020830187611fa7565b6120036040830186611fb6565b6120106060830185611fc5565b61201d6080830184611fc5565b9695505050505050565b6000806040838503121561203e5761203d611984565b5b600061204c858286016119d7565b925050602061205d85828601611cd1565b9150509250929050565b61207081611cae565b82525050565b600060208201905061208b6000830184612067565b92915050565b6000602082840312156120a7576120a6611984565b5b60006120b5848285016119d7565b91505092915050565b60006020820190506120d36000830184611fa7565b92915050565b60006020820190506120ee6000830184611fb6565b92915050565b60006020828403121561210a57612109611984565b5b600061211884828501611c99565b91505092915050565b60006040820190506121366000830185611fb6565b6121436020830184611fb6565b9392505050565b600060408201905061215f6000830185611fc5565b61216c6020830184612067565b9392505050565b600082825260208201905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20746f60008201527f6b656e496473206c656e67746800000000000000000000000000000000000000602082015250565b60006121e0602d83612173565b91506121eb82612184565b604082019050919050565b6000602082019050818103600083015261220f816121d3565b9050919050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20737460008201527f616b6574696d6573206c656e6774680000000000000000000000000000000000602082015250565b6000612272602f83612173565b915061227d82612216565b604082019050919050565b600060208201905081810360008301526122a181612265565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732315374616b696e673a206e6674206973206e6f7420737570706f7260008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612333602383612173565b915061233e826122d7565b604082019050919050565b6000602082019050818103600083015261236281612326565b9050919050565b7f4552433732315374616b696e673a207374616b6574696d65206973206e6f742060008201527f737570706f727465640000000000000000000000000000000000000000000000602082015250565b60006123c5602983612173565b91506123d082612369565b604082019050919050565b600060208201905081810360008301526123f4816123b8565b9050919050565b60006060820190506124106000830186611fa7565b61241d6020830185611fa7565b61242a6040830184611fb6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061246c826119ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561249f5761249e612432565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124df816119ae565b82525050565b6124ee816119ec565b82525050565b6124fd81611c6e565b82525050565b60a08201600082015161251960008501826124d6565b50602082015161252c60208501826124d6565b50604082015161253f60408501826124e5565b50606082015161255260608501826124f4565b50608082015161256560808501826124f4565b50505050565b60006125778383612503565b60a08301905092915050565b6000602082019050919050565b600061259b826124aa565b6125a581856124b5565b93506125b0836124c6565b8060005b838110156125e15781516125c8888261256b565b97506125d383612583565b9250506001810190506125b4565b5085935050505092915050565b600060208201905081810360008301526126088184612590565b905092915050565b7f4552433732315374616b696e673a206e667473206c656e67746820213d20696460008201527f73206c656e677468000000000000000000000000000000000000000000000000602082015250565b600061266c602883612173565b915061267782612610565b604082019050919050565b6000602082019050818103600083015261269b8161265f565b9050919050565b7f4552433732315374616b696e673a20746f6b656e4964206973206e6f7420766160008201527f6c69640000000000000000000000000000000000000000000000000000000000602082015250565b60006126fe602383612173565b9150612709826126a2565b604082019050919050565b6000602082019050818103600083015261272d816126f1565b9050919050565b7f4552433732315374616b696e673a2075736572206973206e6f7420746865206f60008201527f776e6572206f662074686973206e667400000000000000000000000000000000602082015250565b6000612790603083612173565b915061279b82612734565b604082019050919050565b600060208201905081810360008301526127bf81612783565b9050919050565b60006127d1826119ec565b91506127dc836119ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561281157612810612432565b5b828201905092915050565b7f4552433732315374616b696e673a20636f6f6c646f776e2074696d652069732060008201527f6e6f742072656163686564000000000000000000000000000000000000000000602082015250565b6000612878602b83612173565b91506128838261281c565b604082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b60006040820190506128c36000830185611fa7565b6128d06020830184612067565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612933602683612173565b915061293e826128d7565b604082019050919050565b6000602082019050818103600083015261296281612926565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061299f602083612173565b91506129aa82612969565b602082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612a0b601f83612173565b9150612a16826129d5565b602082019050919050565b60006020820190508181036000830152612a3a816129fe565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612a77601083612173565b9150612a8282612a41565b602082019050919050565b60006020820190508181036000830152612aa681612a6a565b905091905056fea2646970667358221220d04bd98ce454449a2fc11c6ce064c80ab5969bdbdd2c0a2233b6efb8bc59b5de64736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", - "src": "0:32941:9", + "src": "0:32681:9", "statements": [ { "body": { @@ -9913,221 +9913,39 @@ { "body": { "nodeType": "YulBlock", - "src": "19930:211:9", + "src": "19930:190:9", "statements": [ { "nodeType": "YulAssignment", - "src": "19940:24:9", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "19962:1:9" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nodeType": "YulIdentifier", - "src": "19945:16:9" - }, - "nodeType": "YulFunctionCall", - "src": "19945:19:9" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "19940:1:9" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "19973:24:9", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "19995:1:9" - } - ], - "functionName": { - "name": "cleanup_t_uint64", - "nodeType": "YulIdentifier", - "src": "19978:16:9" - }, - "nodeType": "YulFunctionCall", - "src": "19978:19:9" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "19973:1:9" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20087:22:9", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "20089:16:9" - }, - "nodeType": "YulFunctionCall", - "src": "20089:18:9" - }, - "nodeType": "YulExpressionStatement", - "src": "20089:18:9" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "20056:1:9" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20063:18:9", - "type": "", - "value": "0xffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "20083:1:9" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "20059:3:9" - }, - "nodeType": "YulFunctionCall", - "src": "20059:26:9" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "20053:2:9" - }, - "nodeType": "YulFunctionCall", - "src": "20053:33:9" - }, - "nodeType": "YulIf", - "src": "20050:59:9" - }, - { - "nodeType": "YulAssignment", - "src": "20119:16:9", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "20130:1:9" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "20133:1:9" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20126:3:9" - }, - "nodeType": "YulFunctionCall", - "src": "20126:9:9" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "20119:3:9" - } - ] - } - ] - }, - "name": "checked_add_t_uint64", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "19917:1:9", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "19920:1:9", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "19926:3:9", - "type": "" - } - ], - "src": "19887:254:9" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20190:190:9", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20200:33:9", + "src": "19940:33:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20227:5:9" + "src": "19967:5:9" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "20209:17:9" + "src": "19949:17:9" }, "nodeType": "YulFunctionCall", - "src": "20209:24:9" + "src": "19949:24:9" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20200:5:9" + "src": "19940:5:9" } ] }, { "body": { "nodeType": "YulBlock", - "src": "20323:22:9", + "src": "20063:22:9", "statements": [ { "expression": { @@ -10135,13 +9953,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "20325:16:9" + "src": "20065:16:9" }, "nodeType": "YulFunctionCall", - "src": "20325:18:9" + "src": "20065:18:9" }, "nodeType": "YulExpressionStatement", - "src": "20325:18:9" + "src": "20065:18:9" } ] }, @@ -10150,12 +9968,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "20248:5:9" + "src": "19988:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20255:66:9", + "src": "19995:66:9", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } @@ -10163,28 +9981,28 @@ "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "20245:2:9" + "src": "19985:2:9" }, "nodeType": "YulFunctionCall", - "src": "20245:77:9" + "src": "19985:77:9" }, "nodeType": "YulIf", - "src": "20242:103:9" + "src": "19982:103:9" }, { "nodeType": "YulAssignment", - "src": "20354:20:9", + "src": "20094:20:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20365:5:9" + "src": "20105:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20372:1:9", + "src": "20112:1:9", "type": "", "value": "1" } @@ -10192,16 +10010,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20361:3:9" + "src": "20101:3:9" }, "nodeType": "YulFunctionCall", - "src": "20361:13:9" + "src": "20101:13:9" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "20354:3:9" + "src": "20094:3:9" } ] } @@ -10213,7 +10031,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "20176:5:9", + "src": "19916:5:9", "type": "" } ], @@ -10221,41 +10039,41 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "20186:3:9", + "src": "19926:3:9", "type": "" } ], - "src": "20147:233:9" + "src": "19887:233:9" }, { "body": { "nodeType": "YulBlock", - "src": "20483:40:9", + "src": "20223:40:9", "statements": [ { "nodeType": "YulAssignment", - "src": "20494:22:9", + "src": "20234:22:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20510:5:9" + "src": "20250:5:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "20504:5:9" + "src": "20244:5:9" }, "nodeType": "YulFunctionCall", - "src": "20504:12:9" + "src": "20244:12:9" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", - "src": "20494:6:9" + "src": "20234:6:9" } ] } @@ -10267,7 +10085,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "20466:5:9", + "src": "20206:5:9", "type": "" } ], @@ -10275,16 +10093,16 @@ { "name": "length", "nodeType": "YulTypedName", - "src": "20476:6:9", + "src": "20216:6:9", "type": "" } ], - "src": "20386:137:9" + "src": "20126:137:9" }, { "body": { "nodeType": "YulBlock", - "src": "20663:73:9", + "src": "20403:73:9", "statements": [ { "expression": { @@ -10292,39 +10110,39 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20680:3:9" + "src": "20420:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "20685:6:9" + "src": "20425:6:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20673:6:9" + "src": "20413:6:9" }, "nodeType": "YulFunctionCall", - "src": "20673:19:9" + "src": "20413:19:9" }, "nodeType": "YulExpressionStatement", - "src": "20673:19:9" + "src": "20413:19:9" }, { "nodeType": "YulAssignment", - "src": "20701:29:9", + "src": "20441:29:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20720:3:9" + "src": "20460:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20725:4:9", + "src": "20465:4:9", "type": "", "value": "0x20" } @@ -10332,16 +10150,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20716:3:9" + "src": "20456:3:9" }, "nodeType": "YulFunctionCall", - "src": "20716:14:9" + "src": "20456:14:9" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", - "src": "20701:11:9" + "src": "20441:11:9" } ] } @@ -10353,13 +10171,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "20635:3:9", + "src": "20375:3:9", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "20640:6:9", + "src": "20380:6:9", "type": "" } ], @@ -10367,47 +10185,47 @@ { "name": "updated_pos", "nodeType": "YulTypedName", - "src": "20651:11:9", + "src": "20391:11:9", "type": "" } ], - "src": "20529:207:9" + "src": "20269:207:9" }, { "body": { "nodeType": "YulBlock", - "src": "20837:60:9", + "src": "20577:60:9", "statements": [ { "nodeType": "YulAssignment", - "src": "20847:11:9", + "src": "20587:11:9", "value": { "name": "ptr", "nodeType": "YulIdentifier", - "src": "20855:3:9" + "src": "20595:3:9" }, "variableNames": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "20847:4:9" + "src": "20587:4:9" } ] }, { "nodeType": "YulAssignment", - "src": "20868:22:9", + "src": "20608:22:9", "value": { "arguments": [ { "name": "ptr", "nodeType": "YulIdentifier", - "src": "20880:3:9" + "src": "20620:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20885:4:9", + "src": "20625:4:9", "type": "", "value": "0x20" } @@ -10415,16 +10233,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20876:3:9" + "src": "20616:3:9" }, "nodeType": "YulFunctionCall", - "src": "20876:14:9" + "src": "20616:14:9" }, "variableNames": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "20868:4:9" + "src": "20608:4:9" } ] } @@ -10436,7 +10254,7 @@ { "name": "ptr", "nodeType": "YulTypedName", - "src": "20824:3:9", + "src": "20564:3:9", "type": "" } ], @@ -10444,16 +10262,16 @@ { "name": "data", "nodeType": "YulTypedName", - "src": "20832:4:9", + "src": "20572:4:9", "type": "" } ], - "src": "20742:155:9" + "src": "20482:155:9" }, { "body": { "nodeType": "YulBlock", - "src": "20958:53:9", + "src": "20698:53:9", "statements": [ { "expression": { @@ -10461,35 +10279,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "20975:3:9" + "src": "20715:3:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "20998:5:9" + "src": "20738:5:9" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", - "src": "20980:17:9" + "src": "20720:17:9" }, "nodeType": "YulFunctionCall", - "src": "20980:24:9" + "src": "20720:24:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20968:6:9" + "src": "20708:6:9" }, "nodeType": "YulFunctionCall", - "src": "20968:37:9" + "src": "20708:37:9" }, "nodeType": "YulExpressionStatement", - "src": "20968:37:9" + "src": "20708:37:9" } ] }, @@ -10499,22 +10317,22 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "20946:5:9", + "src": "20686:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "20953:3:9", + "src": "20693:3:9", "type": "" } ], - "src": "20903:108:9" + "src": "20643:108:9" }, { "body": { "nodeType": "YulBlock", - "src": "21072:53:9", + "src": "20812:53:9", "statements": [ { "expression": { @@ -10522,35 +10340,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21089:3:9" + "src": "20829:3:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "21112:5:9" + "src": "20852:5:9" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "21094:17:9" + "src": "20834:17:9" }, "nodeType": "YulFunctionCall", - "src": "21094:24:9" + "src": "20834:24:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21082:6:9" + "src": "20822:6:9" }, "nodeType": "YulFunctionCall", - "src": "21082:37:9" + "src": "20822:37:9" }, "nodeType": "YulExpressionStatement", - "src": "21082:37:9" + "src": "20822:37:9" } ] }, @@ -10560,22 +10378,22 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "21060:5:9", + "src": "20800:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "21067:3:9", + "src": "20807:3:9", "type": "" } ], - "src": "21017:108:9" + "src": "20757:108:9" }, { "body": { "nodeType": "YulBlock", - "src": "21184:52:9", + "src": "20924:52:9", "statements": [ { "expression": { @@ -10583,35 +10401,35 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21201:3:9" + "src": "20941:3:9" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "21223:5:9" + "src": "20963:5:9" } ], "functionName": { "name": "cleanup_t_uint64", "nodeType": "YulIdentifier", - "src": "21206:16:9" + "src": "20946:16:9" }, "nodeType": "YulFunctionCall", - "src": "21206:23:9" + "src": "20946:23:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21194:6:9" + "src": "20934:6:9" }, "nodeType": "YulFunctionCall", - "src": "21194:36:9" + "src": "20934:36:9" }, "nodeType": "YulExpressionStatement", - "src": "21194:36:9" + "src": "20934:36:9" } ] }, @@ -10621,37 +10439,37 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "21172:5:9", + "src": "20912:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "21179:3:9", + "src": "20919:3:9", "type": "" } ], - "src": "21131:105:9" + "src": "20871:105:9" }, { "body": { "nodeType": "YulBlock", - "src": "21410:917:9", + "src": "21150:917:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "21420:26:9", + "src": "21160:26:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21436:3:9" + "src": "21176:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21441:4:9", + "src": "21181:4:9", "type": "", "value": "0xa0" } @@ -10659,27 +10477,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21432:3:9" + "src": "21172:3:9" }, "nodeType": "YulFunctionCall", - "src": "21432:14:9" + "src": "21172:14:9" }, "variables": [ { "name": "tail", "nodeType": "YulTypedName", - "src": "21424:4:9", + "src": "21164:4:9", "type": "" } ] }, { "nodeType": "YulBlock", - "src": "21456:164:9", + "src": "21196:164:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "21491:43:9", + "src": "21231:43:9", "value": { "arguments": [ { @@ -10687,12 +10505,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "21521:5:9" + "src": "21261:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21528:4:9", + "src": "21268:4:9", "type": "", "value": "0x00" } @@ -10700,25 +10518,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21517:3:9" + "src": "21257:3:9" }, "nodeType": "YulFunctionCall", - "src": "21517:16:9" + "src": "21257:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "21511:5:9" + "src": "21251:5:9" }, "nodeType": "YulFunctionCall", - "src": "21511:23:9" + "src": "21251:23:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "21495:12:9", + "src": "21235:12:9", "type": "" } ] @@ -10729,19 +10547,19 @@ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "21581:12:9" + "src": "21321:12:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21599:3:9" + "src": "21339:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21604:4:9", + "src": "21344:4:9", "type": "", "value": "0x00" } @@ -10749,32 +10567,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21595:3:9" + "src": "21335:3:9" }, "nodeType": "YulFunctionCall", - "src": "21595:14:9" + "src": "21335:14:9" } ], "functionName": { "name": "abi_encode_t_address_to_t_address", "nodeType": "YulIdentifier", - "src": "21547:33:9" + "src": "21287:33:9" }, "nodeType": "YulFunctionCall", - "src": "21547:63:9" + "src": "21287:63:9" }, "nodeType": "YulExpressionStatement", - "src": "21547:63:9" + "src": "21287:63:9" } ] }, { "nodeType": "YulBlock", - "src": "21630:163:9", + "src": "21370:163:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "21664:43:9", + "src": "21404:43:9", "value": { "arguments": [ { @@ -10782,12 +10600,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "21694:5:9" + "src": "21434:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21701:4:9", + "src": "21441:4:9", "type": "", "value": "0x20" } @@ -10795,25 +10613,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21690:3:9" + "src": "21430:3:9" }, "nodeType": "YulFunctionCall", - "src": "21690:16:9" + "src": "21430:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "21684:5:9" + "src": "21424:5:9" }, "nodeType": "YulFunctionCall", - "src": "21684:23:9" + "src": "21424:23:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "21668:12:9", + "src": "21408:12:9", "type": "" } ] @@ -10824,19 +10642,19 @@ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "21754:12:9" + "src": "21494:12:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21772:3:9" + "src": "21512:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21777:4:9", + "src": "21517:4:9", "type": "", "value": "0x20" } @@ -10844,32 +10662,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21768:3:9" + "src": "21508:3:9" }, "nodeType": "YulFunctionCall", - "src": "21768:14:9" + "src": "21508:14:9" } ], "functionName": { "name": "abi_encode_t_address_to_t_address", "nodeType": "YulIdentifier", - "src": "21720:33:9" + "src": "21460:33:9" }, "nodeType": "YulFunctionCall", - "src": "21720:63:9" + "src": "21460:63:9" }, "nodeType": "YulExpressionStatement", - "src": "21720:63:9" + "src": "21460:63:9" } ] }, { "nodeType": "YulBlock", - "src": "21803:167:9", + "src": "21543:167:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "21841:43:9", + "src": "21581:43:9", "value": { "arguments": [ { @@ -10877,12 +10695,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "21871:5:9" + "src": "21611:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21878:4:9", + "src": "21618:4:9", "type": "", "value": "0x40" } @@ -10890,25 +10708,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21867:3:9" + "src": "21607:3:9" }, "nodeType": "YulFunctionCall", - "src": "21867:16:9" + "src": "21607:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "21861:5:9" + "src": "21601:5:9" }, "nodeType": "YulFunctionCall", - "src": "21861:23:9" + "src": "21601:23:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "21845:12:9", + "src": "21585:12:9", "type": "" } ] @@ -10919,19 +10737,19 @@ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "21931:12:9" + "src": "21671:12:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "21949:3:9" + "src": "21689:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21954:4:9", + "src": "21694:4:9", "type": "", "value": "0x40" } @@ -10939,32 +10757,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21945:3:9" + "src": "21685:3:9" }, "nodeType": "YulFunctionCall", - "src": "21945:14:9" + "src": "21685:14:9" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256", "nodeType": "YulIdentifier", - "src": "21897:33:9" + "src": "21637:33:9" }, "nodeType": "YulFunctionCall", - "src": "21897:63:9" + "src": "21637:63:9" }, "nodeType": "YulExpressionStatement", - "src": "21897:63:9" + "src": "21637:63:9" } ] }, { "nodeType": "YulBlock", - "src": "21980:163:9", + "src": "21720:163:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "22016:43:9", + "src": "21756:43:9", "value": { "arguments": [ { @@ -10972,12 +10790,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "22046:5:9" + "src": "21786:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22053:4:9", + "src": "21793:4:9", "type": "", "value": "0x60" } @@ -10985,25 +10803,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22042:3:9" + "src": "21782:3:9" }, "nodeType": "YulFunctionCall", - "src": "22042:16:9" + "src": "21782:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "22036:5:9" + "src": "21776:5:9" }, "nodeType": "YulFunctionCall", - "src": "22036:23:9" + "src": "21776:23:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "22020:12:9", + "src": "21760:12:9", "type": "" } ] @@ -11014,19 +10832,19 @@ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "22104:12:9" + "src": "21844:12:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22122:3:9" + "src": "21862:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22127:4:9", + "src": "21867:4:9", "type": "", "value": "0x60" } @@ -11034,32 +10852,32 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22118:3:9" + "src": "21858:3:9" }, "nodeType": "YulFunctionCall", - "src": "22118:14:9" + "src": "21858:14:9" } ], "functionName": { "name": "abi_encode_t_uint64_to_t_uint64", "nodeType": "YulIdentifier", - "src": "22072:31:9" + "src": "21812:31:9" }, "nodeType": "YulFunctionCall", - "src": "22072:61:9" + "src": "21812:61:9" }, "nodeType": "YulExpressionStatement", - "src": "22072:61:9" + "src": "21812:61:9" } ] }, { "nodeType": "YulBlock", - "src": "22153:167:9", + "src": "21893:167:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "22193:43:9", + "src": "21933:43:9", "value": { "arguments": [ { @@ -11067,12 +10885,12 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "22223:5:9" + "src": "21963:5:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22230:4:9", + "src": "21970:4:9", "type": "", "value": "0x80" } @@ -11080,25 +10898,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22219:3:9" + "src": "21959:3:9" }, "nodeType": "YulFunctionCall", - "src": "22219:16:9" + "src": "21959:16:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "22213:5:9" + "src": "21953:5:9" }, "nodeType": "YulFunctionCall", - "src": "22213:23:9" + "src": "21953:23:9" }, "variables": [ { "name": "memberValue0", "nodeType": "YulTypedName", - "src": "22197:12:9", + "src": "21937:12:9", "type": "" } ] @@ -11109,19 +10927,19 @@ { "name": "memberValue0", "nodeType": "YulIdentifier", - "src": "22281:12:9" + "src": "22021:12:9" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22299:3:9" + "src": "22039:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22304:4:9", + "src": "22044:4:9", "type": "", "value": "0x80" } @@ -11129,22 +10947,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22295:3:9" + "src": "22035:3:9" }, "nodeType": "YulFunctionCall", - "src": "22295:14:9" + "src": "22035:14:9" } ], "functionName": { "name": "abi_encode_t_uint64_to_t_uint64", "nodeType": "YulIdentifier", - "src": "22249:31:9" + "src": "21989:31:9" }, "nodeType": "YulFunctionCall", - "src": "22249:61:9" + "src": "21989:61:9" }, "nodeType": "YulExpressionStatement", - "src": "22249:61:9" + "src": "21989:61:9" } ] } @@ -11156,22 +10974,22 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "21397:5:9", + "src": "21137:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "21404:3:9", + "src": "21144:3:9", "type": "" } ], - "src": "21308:1019:9" + "src": "21048:1019:9" }, { "body": { "nodeType": "YulBlock", - "src": "22459:145:9", + "src": "22199:145:9", "statements": [ { "expression": { @@ -11179,39 +10997,39 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "22549:6:9" + "src": "22289:6:9" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "22557:3:9" + "src": "22297:3:9" } ], "functionName": { "name": "abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr", "nodeType": "YulIdentifier", - "src": "22469:79:9" + "src": "22209:79:9" }, "nodeType": "YulFunctionCall", - "src": "22469:92:9" + "src": "22209:92:9" }, "nodeType": "YulExpressionStatement", - "src": "22469:92:9" + "src": "22209:92:9" }, { "nodeType": "YulAssignment", - "src": "22570:28:9", + "src": "22310:28:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "22588:3:9" + "src": "22328:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22593:4:9", + "src": "22333:4:9", "type": "", "value": "0xa0" } @@ -11219,16 +11037,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22584:3:9" + "src": "22324:3:9" }, "nodeType": "YulFunctionCall", - "src": "22584:14:9" + "src": "22324:14:9" }, "variableNames": [ { "name": "updatedPos", "nodeType": "YulIdentifier", - "src": "22570:10:9" + "src": "22310:10:9" } ] } @@ -11240,13 +11058,13 @@ { "name": "value0", "nodeType": "YulTypedName", - "src": "22432:6:9", + "src": "22172:6:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "22440:3:9", + "src": "22180:3:9", "type": "" } ], @@ -11254,31 +11072,31 @@ { "name": "updatedPos", "nodeType": "YulTypedName", - "src": "22448:10:9", + "src": "22188:10:9", "type": "" } ], - "src": "22333:271:9" + "src": "22073:271:9" }, { "body": { "nodeType": "YulBlock", - "src": "22708:38:9", + "src": "22448:38:9", "statements": [ { "nodeType": "YulAssignment", - "src": "22718:22:9", + "src": "22458:22:9", "value": { "arguments": [ { "name": "ptr", "nodeType": "YulIdentifier", - "src": "22730:3:9" + "src": "22470:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22735:4:9", + "src": "22475:4:9", "type": "", "value": "0x20" } @@ -11286,16 +11104,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22726:3:9" + "src": "22466:3:9" }, "nodeType": "YulFunctionCall", - "src": "22726:14:9" + "src": "22466:14:9" }, "variableNames": [ { "name": "next", "nodeType": "YulIdentifier", - "src": "22718:4:9" + "src": "22458:4:9" } ] } @@ -11307,7 +11125,7 @@ { "name": "ptr", "nodeType": "YulTypedName", - "src": "22695:3:9", + "src": "22435:3:9", "type": "" } ], @@ -11315,118 +11133,118 @@ { "name": "next", "nodeType": "YulTypedName", - "src": "22703:4:9", + "src": "22443:4:9", "type": "" } ], - "src": "22610:136:9" + "src": "22350:136:9" }, { "body": { "nodeType": "YulBlock", - "src": "22992:746:9", + "src": "22732:746:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "23002:91:9", + "src": "22742:91:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "23087:5:9" + "src": "22827:5:9" } ], "functionName": { "name": "array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "23016:70:9" + "src": "22756:70:9" }, "nodeType": "YulFunctionCall", - "src": "23016:77:9" + "src": "22756:77:9" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "23006:6:9", + "src": "22746:6:9", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "23102:116:9", + "src": "22842:116:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23206:3:9" + "src": "22946:3:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "23211:6:9" + "src": "22951:6:9" } ], "functionName": { "name": "array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "23109:96:9" + "src": "22849:96:9" }, "nodeType": "YulFunctionCall", - "src": "23109:109:9" + "src": "22849:109:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23102:3:9" + "src": "22842:3:9" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "23227:94:9", + "src": "22967:94:9", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "23315:5:9" + "src": "23055:5:9" } ], "functionName": { "name": "array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "23242:72:9" + "src": "22982:72:9" }, "nodeType": "YulFunctionCall", - "src": "23242:79:9" + "src": "22982:79:9" }, "variables": [ { "name": "baseRef", "nodeType": "YulTypedName", - "src": "23231:7:9", + "src": "22971:7:9", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "23330:21:9", + "src": "23070:21:9", "value": { "name": "baseRef", "nodeType": "YulIdentifier", - "src": "23344:7:9" + "src": "23084:7:9" }, "variables": [ { "name": "srcPtr", "nodeType": "YulTypedName", - "src": "23334:6:9", + "src": "23074:6:9", "type": "" } ] @@ -11434,92 +11252,92 @@ { "body": { "nodeType": "YulBlock", - "src": "23420:293:9", + "src": "23160:293:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "23434:34:9", + "src": "23174:34:9", "value": { "arguments": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "23461:6:9" + "src": "23201:6:9" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "23455:5:9" + "src": "23195:5:9" }, "nodeType": "YulFunctionCall", - "src": "23455:13:9" + "src": "23195:13:9" }, "variables": [ { "name": "elementValue0", "nodeType": "YulTypedName", - "src": "23438:13:9", + "src": "23178:13:9", "type": "" } ] }, { "nodeType": "YulAssignment", - "src": "23481:116:9", + "src": "23221:116:9", "value": { "arguments": [ { "name": "elementValue0", "nodeType": "YulIdentifier", - "src": "23578:13:9" + "src": "23318:13:9" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "23593:3:9" + "src": "23333:3:9" } ], "functionName": { "name": "abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr", "nodeType": "YulIdentifier", - "src": "23488:89:9" + "src": "23228:89:9" }, "nodeType": "YulFunctionCall", - "src": "23488:109:9" + "src": "23228:109:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "23481:3:9" + "src": "23221:3:9" } ] }, { "nodeType": "YulAssignment", - "src": "23610:93:9", + "src": "23350:93:9", "value": { "arguments": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "23696:6:9" + "src": "23436:6:9" } ], "functionName": { "name": "array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", - "src": "23620:75:9" + "src": "23360:75:9" }, "nodeType": "YulFunctionCall", - "src": "23620:83:9" + "src": "23360:83:9" }, "variableNames": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "23610:6:9" + "src": "23350:6:9" } ] } @@ -11530,41 +11348,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "23382:1:9" + "src": "23122:1:9" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "23385:6:9" + "src": "23125:6:9" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "23379:2:9" + "src": "23119:2:9" }, "nodeType": "YulFunctionCall", - "src": "23379:13:9" + "src": "23119:13:9" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "23393:18:9", + "src": "23133:18:9", "statements": [ { "nodeType": "YulAssignment", - "src": "23395:14:9", + "src": "23135:14:9", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "23404:1:9" + "src": "23144:1:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23407:1:9", + "src": "23147:1:9", "type": "", "value": "1" } @@ -11572,16 +11390,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23400:3:9" + "src": "23140:3:9" }, "nodeType": "YulFunctionCall", - "src": "23400:9:9" + "src": "23140:9:9" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "23395:1:9" + "src": "23135:1:9" } ] } @@ -11589,15 +11407,15 @@ }, "pre": { "nodeType": "YulBlock", - "src": "23364:14:9", + "src": "23104:14:9", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "23366:10:9", + "src": "23106:10:9", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "23375:1:9", + "src": "23115:1:9", "type": "", "value": "0" }, @@ -11605,28 +11423,28 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "23370:1:9", + "src": "23110:1:9", "type": "" } ] } ] }, - "src": "23360:353:9" + "src": "23100:353:9" }, { "nodeType": "YulAssignment", - "src": "23722:10:9", + "src": "23462:10:9", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "23729:3:9" + "src": "23469:3:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "23722:3:9" + "src": "23462:3:9" } ] } @@ -11638,13 +11456,13 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "22971:5:9", + "src": "22711:5:9", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", - "src": "22978:3:9", + "src": "22718:3:9", "type": "" } ], @@ -11652,31 +11470,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "22987:3:9", + "src": "22727:3:9", "type": "" } ], - "src": "22822:916:9" + "src": "22562:916:9" }, { "body": { "nodeType": "YulBlock", - "src": "23938:271:9", + "src": "23678:271:9", "statements": [ { "nodeType": "YulAssignment", - "src": "23948:26:9", + "src": "23688:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23960:9:9" + "src": "23700:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23971:2:9", + "src": "23711:2:9", "type": "", "value": "32" } @@ -11684,16 +11502,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23956:3:9" + "src": "23696:3:9" }, "nodeType": "YulFunctionCall", - "src": "23956:18:9" + "src": "23696:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23948:4:9" + "src": "23688:4:9" } ] }, @@ -11705,12 +11523,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23995:9:9" + "src": "23735:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24006:1:9", + "src": "23746:1:9", "type": "", "value": "0" } @@ -11718,73 +11536,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23991:3:9" + "src": "23731:3:9" }, "nodeType": "YulFunctionCall", - "src": "23991:17:9" + "src": "23731:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24014:4:9" + "src": "23754:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24020:9:9" + "src": "23760:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "24010:3:9" + "src": "23750:3:9" }, "nodeType": "YulFunctionCall", - "src": "24010:20:9" + "src": "23750:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23984:6:9" + "src": "23724:6:9" }, "nodeType": "YulFunctionCall", - "src": "23984:47:9" + "src": "23724:47:9" }, "nodeType": "YulExpressionStatement", - "src": "23984:47:9" + "src": "23724:47:9" }, { "nodeType": "YulAssignment", - "src": "24040:162:9", + "src": "23780:162:9", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "24188:6:9" + "src": "23928:6:9" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "24197:4:9" + "src": "23937:4:9" } ], "functionName": { "name": "abi_encode_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "24048:139:9" + "src": "23788:139:9" }, "nodeType": "YulFunctionCall", - "src": "24048:154:9" + "src": "23788:154:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24040:4:9" + "src": "23780:4:9" } ] } @@ -11796,13 +11614,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23910:9:9", + "src": "23650:9:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "23922:6:9", + "src": "23662:6:9", "type": "" } ], @@ -11810,16 +11628,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23933:4:9", + "src": "23673:4:9", "type": "" } ], - "src": "23744:465:9" + "src": "23484:465:9" }, { "body": { "nodeType": "YulBlock", - "src": "24321:121:9", + "src": "24061:121:9", "statements": [ { "expression": { @@ -11829,12 +11647,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "24343:6:9" + "src": "24083:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24351:1:9", + "src": "24091:1:9", "type": "", "value": "0" } @@ -11842,16 +11660,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24339:3:9" + "src": "24079:3:9" }, "nodeType": "YulFunctionCall", - "src": "24339:14:9" + "src": "24079:14:9" }, { "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d206964", "kind": "string", "nodeType": "YulLiteral", - "src": "24355:34:9", + "src": "24095:34:9", "type": "", "value": "ERC721Staking: nfts length != id" } @@ -11859,13 +11677,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24332:6:9" + "src": "24072:6:9" }, "nodeType": "YulFunctionCall", - "src": "24332:58:9" + "src": "24072:58:9" }, "nodeType": "YulExpressionStatement", - "src": "24332:58:9" + "src": "24072:58:9" }, { "expression": { @@ -11875,12 +11693,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "24411:6:9" + "src": "24151:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24419:2:9", + "src": "24159:2:9", "type": "", "value": "32" } @@ -11888,16 +11706,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24407:3:9" + "src": "24147:3:9" }, "nodeType": "YulFunctionCall", - "src": "24407:15:9" + "src": "24147:15:9" }, { "hexValue": "73206c656e677468", "kind": "string", "nodeType": "YulLiteral", - "src": "24424:10:9", + "src": "24164:10:9", "type": "", "value": "s length" } @@ -11905,13 +11723,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24400:6:9" + "src": "24140:6:9" }, "nodeType": "YulFunctionCall", - "src": "24400:35:9" + "src": "24140:35:9" }, "nodeType": "YulExpressionStatement", - "src": "24400:35:9" + "src": "24140:35:9" } ] }, @@ -11921,31 +11739,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "24313:6:9", + "src": "24053:6:9", "type": "" } ], - "src": "24215:227:9" + "src": "23955:227:9" }, { "body": { "nodeType": "YulBlock", - "src": "24594:220:9", + "src": "24334:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "24604:74:9", + "src": "24344:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "24670:3:9" + "src": "24410:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24675:2:9", + "src": "24415:2:9", "type": "", "value": "40" } @@ -11953,16 +11771,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "24611:58:9" + "src": "24351:58:9" }, "nodeType": "YulFunctionCall", - "src": "24611:67:9" + "src": "24351:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "24604:3:9" + "src": "24344:3:9" } ] }, @@ -11972,34 +11790,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "24776:3:9" + "src": "24516:3:9" } ], "functionName": { "name": "store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", "nodeType": "YulIdentifier", - "src": "24687:88:9" + "src": "24427:88:9" }, "nodeType": "YulFunctionCall", - "src": "24687:93:9" + "src": "24427:93:9" }, "nodeType": "YulExpressionStatement", - "src": "24687:93:9" + "src": "24427:93:9" }, { "nodeType": "YulAssignment", - "src": "24789:19:9", + "src": "24529:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "24800:3:9" + "src": "24540:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24805:2:9", + "src": "24545:2:9", "type": "", "value": "64" } @@ -12007,16 +11825,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24796:3:9" + "src": "24536:3:9" }, "nodeType": "YulFunctionCall", - "src": "24796:12:9" + "src": "24536:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "24789:3:9" + "src": "24529:3:9" } ] } @@ -12028,7 +11846,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "24582:3:9", + "src": "24322:3:9", "type": "" } ], @@ -12036,31 +11854,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "24590:3:9", + "src": "24330:3:9", "type": "" } ], - "src": "24448:366:9" + "src": "24188:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "24991:248:9", + "src": "24731:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "25001:26:9", + "src": "24741:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25013:9:9" + "src": "24753:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25024:2:9", + "src": "24764:2:9", "type": "", "value": "32" } @@ -12068,16 +11886,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25009:3:9" + "src": "24749:3:9" }, "nodeType": "YulFunctionCall", - "src": "25009:18:9" + "src": "24749:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25001:4:9" + "src": "24741:4:9" } ] }, @@ -12089,12 +11907,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25048:9:9" + "src": "24788:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25059:1:9", + "src": "24799:1:9", "type": "", "value": "0" } @@ -12102,68 +11920,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25044:3:9" + "src": "24784:3:9" }, "nodeType": "YulFunctionCall", - "src": "25044:17:9" + "src": "24784:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25067:4:9" + "src": "24807:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25073:9:9" + "src": "24813:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "25063:3:9" + "src": "24803:3:9" }, "nodeType": "YulFunctionCall", - "src": "25063:20:9" + "src": "24803:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25037:6:9" + "src": "24777:6:9" }, "nodeType": "YulFunctionCall", - "src": "25037:47:9" + "src": "24777:47:9" }, "nodeType": "YulExpressionStatement", - "src": "25037:47:9" + "src": "24777:47:9" }, { "nodeType": "YulAssignment", - "src": "25093:139:9", + "src": "24833:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25227:4:9" + "src": "24967:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "25101:124:9" + "src": "24841:124:9" }, "nodeType": "YulFunctionCall", - "src": "25101:131:9" + "src": "24841:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25093:4:9" + "src": "24833:4:9" } ] } @@ -12175,7 +11993,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "24971:9:9", + "src": "24711:9:9", "type": "" } ], @@ -12183,16 +12001,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "24986:4:9", + "src": "24726:4:9", "type": "" } ], - "src": "24820:419:9" + "src": "24560:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "25351:116:9", + "src": "25091:116:9", "statements": [ { "expression": { @@ -12202,12 +12020,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "25373:6:9" + "src": "25113:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25381:1:9", + "src": "25121:1:9", "type": "", "value": "0" } @@ -12215,16 +12033,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25369:3:9" + "src": "25109:3:9" }, "nodeType": "YulFunctionCall", - "src": "25369:14:9" + "src": "25109:14:9" }, { "hexValue": "4552433732315374616b696e673a20746f6b656e4964206973206e6f74207661", "kind": "string", "nodeType": "YulLiteral", - "src": "25385:34:9", + "src": "25125:34:9", "type": "", "value": "ERC721Staking: tokenId is not va" } @@ -12232,13 +12050,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25362:6:9" + "src": "25102:6:9" }, "nodeType": "YulFunctionCall", - "src": "25362:58:9" + "src": "25102:58:9" }, "nodeType": "YulExpressionStatement", - "src": "25362:58:9" + "src": "25102:58:9" }, { "expression": { @@ -12248,12 +12066,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "25441:6:9" + "src": "25181:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25449:2:9", + "src": "25189:2:9", "type": "", "value": "32" } @@ -12261,16 +12079,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25437:3:9" + "src": "25177:3:9" }, "nodeType": "YulFunctionCall", - "src": "25437:15:9" + "src": "25177:15:9" }, { "hexValue": "6c6964", "kind": "string", "nodeType": "YulLiteral", - "src": "25454:5:9", + "src": "25194:5:9", "type": "", "value": "lid" } @@ -12278,13 +12096,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25430:6:9" + "src": "25170:6:9" }, "nodeType": "YulFunctionCall", - "src": "25430:30:9" + "src": "25170:30:9" }, "nodeType": "YulExpressionStatement", - "src": "25430:30:9" + "src": "25170:30:9" } ] }, @@ -12294,31 +12112,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "25343:6:9", + "src": "25083:6:9", "type": "" } ], - "src": "25245:222:9" + "src": "24985:222:9" }, { "body": { "nodeType": "YulBlock", - "src": "25619:220:9", + "src": "25359:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "25629:74:9", + "src": "25369:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25695:3:9" + "src": "25435:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25700:2:9", + "src": "25440:2:9", "type": "", "value": "35" } @@ -12326,16 +12144,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "25636:58:9" + "src": "25376:58:9" }, "nodeType": "YulFunctionCall", - "src": "25636:67:9" + "src": "25376:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25629:3:9" + "src": "25369:3:9" } ] }, @@ -12345,34 +12163,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25801:3:9" + "src": "25541:3:9" } ], "functionName": { "name": "store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", "nodeType": "YulIdentifier", - "src": "25712:88:9" + "src": "25452:88:9" }, "nodeType": "YulFunctionCall", - "src": "25712:93:9" + "src": "25452:93:9" }, "nodeType": "YulExpressionStatement", - "src": "25712:93:9" + "src": "25452:93:9" }, { "nodeType": "YulAssignment", - "src": "25814:19:9", + "src": "25554:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "25825:3:9" + "src": "25565:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25830:2:9", + "src": "25570:2:9", "type": "", "value": "64" } @@ -12380,16 +12198,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25821:3:9" + "src": "25561:3:9" }, "nodeType": "YulFunctionCall", - "src": "25821:12:9" + "src": "25561:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "25814:3:9" + "src": "25554:3:9" } ] } @@ -12401,7 +12219,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "25607:3:9", + "src": "25347:3:9", "type": "" } ], @@ -12409,31 +12227,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "25615:3:9", + "src": "25355:3:9", "type": "" } ], - "src": "25473:366:9" + "src": "25213:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "26016:248:9", + "src": "25756:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "26026:26:9", + "src": "25766:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26038:9:9" + "src": "25778:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26049:2:9", + "src": "25789:2:9", "type": "", "value": "32" } @@ -12441,16 +12259,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26034:3:9" + "src": "25774:3:9" }, "nodeType": "YulFunctionCall", - "src": "26034:18:9" + "src": "25774:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26026:4:9" + "src": "25766:4:9" } ] }, @@ -12462,12 +12280,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26073:9:9" + "src": "25813:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26084:1:9", + "src": "25824:1:9", "type": "", "value": "0" } @@ -12475,68 +12293,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26069:3:9" + "src": "25809:3:9" }, "nodeType": "YulFunctionCall", - "src": "26069:17:9" + "src": "25809:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26092:4:9" + "src": "25832:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26098:9:9" + "src": "25838:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "26088:3:9" + "src": "25828:3:9" }, "nodeType": "YulFunctionCall", - "src": "26088:20:9" + "src": "25828:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26062:6:9" + "src": "25802:6:9" }, "nodeType": "YulFunctionCall", - "src": "26062:47:9" + "src": "25802:47:9" }, "nodeType": "YulExpressionStatement", - "src": "26062:47:9" + "src": "25802:47:9" }, { "nodeType": "YulAssignment", - "src": "26118:139:9", + "src": "25858:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26252:4:9" + "src": "25992:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "26126:124:9" + "src": "25866:124:9" }, "nodeType": "YulFunctionCall", - "src": "26126:131:9" + "src": "25866:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26118:4:9" + "src": "25858:4:9" } ] } @@ -12548,7 +12366,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "25996:9:9", + "src": "25736:9:9", "type": "" } ], @@ -12556,16 +12374,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "26011:4:9", + "src": "25751:4:9", "type": "" } ], - "src": "25845:419:9" + "src": "25585:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "26376:129:9", + "src": "26116:129:9", "statements": [ { "expression": { @@ -12575,12 +12393,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "26398:6:9" + "src": "26138:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26406:1:9", + "src": "26146:1:9", "type": "", "value": "0" } @@ -12588,16 +12406,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26394:3:9" + "src": "26134:3:9" }, "nodeType": "YulFunctionCall", - "src": "26394:14:9" + "src": "26134:14:9" }, { "hexValue": "4552433732315374616b696e673a2075736572206973206e6f7420746865206f", "kind": "string", "nodeType": "YulLiteral", - "src": "26410:34:9", + "src": "26150:34:9", "type": "", "value": "ERC721Staking: user is not the o" } @@ -12605,13 +12423,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26387:6:9" + "src": "26127:6:9" }, "nodeType": "YulFunctionCall", - "src": "26387:58:9" + "src": "26127:58:9" }, "nodeType": "YulExpressionStatement", - "src": "26387:58:9" + "src": "26127:58:9" }, { "expression": { @@ -12621,12 +12439,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "26466:6:9" + "src": "26206:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26474:2:9", + "src": "26214:2:9", "type": "", "value": "32" } @@ -12634,16 +12452,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26462:3:9" + "src": "26202:3:9" }, "nodeType": "YulFunctionCall", - "src": "26462:15:9" + "src": "26202:15:9" }, { "hexValue": "776e6572206f662074686973206e6674", "kind": "string", "nodeType": "YulLiteral", - "src": "26479:18:9", + "src": "26219:18:9", "type": "", "value": "wner of this nft" } @@ -12651,13 +12469,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26455:6:9" + "src": "26195:6:9" }, "nodeType": "YulFunctionCall", - "src": "26455:43:9" + "src": "26195:43:9" }, "nodeType": "YulExpressionStatement", - "src": "26455:43:9" + "src": "26195:43:9" } ] }, @@ -12667,31 +12485,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "26368:6:9", + "src": "26108:6:9", "type": "" } ], - "src": "26270:235:9" + "src": "26010:235:9" }, { "body": { "nodeType": "YulBlock", - "src": "26657:220:9", + "src": "26397:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "26667:74:9", + "src": "26407:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26733:3:9" + "src": "26473:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26738:2:9", + "src": "26478:2:9", "type": "", "value": "48" } @@ -12699,16 +12517,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "26674:58:9" + "src": "26414:58:9" }, "nodeType": "YulFunctionCall", - "src": "26674:67:9" + "src": "26414:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26667:3:9" + "src": "26407:3:9" } ] }, @@ -12718,34 +12536,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26839:3:9" + "src": "26579:3:9" } ], "functionName": { "name": "store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", "nodeType": "YulIdentifier", - "src": "26750:88:9" + "src": "26490:88:9" }, "nodeType": "YulFunctionCall", - "src": "26750:93:9" + "src": "26490:93:9" }, "nodeType": "YulExpressionStatement", - "src": "26750:93:9" + "src": "26490:93:9" }, { "nodeType": "YulAssignment", - "src": "26852:19:9", + "src": "26592:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "26863:3:9" + "src": "26603:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26868:2:9", + "src": "26608:2:9", "type": "", "value": "64" } @@ -12753,16 +12571,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26859:3:9" + "src": "26599:3:9" }, "nodeType": "YulFunctionCall", - "src": "26859:12:9" + "src": "26599:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "26852:3:9" + "src": "26592:3:9" } ] } @@ -12774,7 +12592,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "26645:3:9", + "src": "26385:3:9", "type": "" } ], @@ -12782,31 +12600,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "26653:3:9", + "src": "26393:3:9", "type": "" } ], - "src": "26511:366:9" + "src": "26251:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "27054:248:9", + "src": "26794:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "27064:26:9", + "src": "26804:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27076:9:9" + "src": "26816:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27087:2:9", + "src": "26827:2:9", "type": "", "value": "32" } @@ -12814,16 +12632,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27072:3:9" + "src": "26812:3:9" }, "nodeType": "YulFunctionCall", - "src": "27072:18:9" + "src": "26812:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27064:4:9" + "src": "26804:4:9" } ] }, @@ -12835,12 +12653,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27111:9:9" + "src": "26851:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27122:1:9", + "src": "26862:1:9", "type": "", "value": "0" } @@ -12848,68 +12666,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27107:3:9" + "src": "26847:3:9" }, "nodeType": "YulFunctionCall", - "src": "27107:17:9" + "src": "26847:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27130:4:9" + "src": "26870:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27136:9:9" + "src": "26876:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "27126:3:9" + "src": "26866:3:9" }, "nodeType": "YulFunctionCall", - "src": "27126:20:9" + "src": "26866:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27100:6:9" + "src": "26840:6:9" }, "nodeType": "YulFunctionCall", - "src": "27100:47:9" + "src": "26840:47:9" }, "nodeType": "YulExpressionStatement", - "src": "27100:47:9" + "src": "26840:47:9" }, { "nodeType": "YulAssignment", - "src": "27156:139:9", + "src": "26896:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27290:4:9" + "src": "27030:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "27164:124:9" + "src": "26904:124:9" }, "nodeType": "YulFunctionCall", - "src": "27164:131:9" + "src": "26904:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27156:4:9" + "src": "26896:4:9" } ] } @@ -12921,7 +12739,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "27034:9:9", + "src": "26774:9:9", "type": "" } ], @@ -12929,75 +12747,75 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "27049:4:9", + "src": "26789:4:9", "type": "" } ], - "src": "26883:419:9" + "src": "26623:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "27352:261:9", + "src": "27092:261:9", "statements": [ { "nodeType": "YulAssignment", - "src": "27362:25:9", + "src": "27102:25:9", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "27385:1:9" + "src": "27125:1:9" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "27367:17:9" + "src": "27107:17:9" }, "nodeType": "YulFunctionCall", - "src": "27367:20:9" + "src": "27107:20:9" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "27362:1:9" + "src": "27102:1:9" } ] }, { "nodeType": "YulAssignment", - "src": "27396:25:9", + "src": "27136:25:9", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "27419:1:9" + "src": "27159:1:9" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", - "src": "27401:17:9" + "src": "27141:17:9" }, "nodeType": "YulFunctionCall", - "src": "27401:20:9" + "src": "27141:20:9" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "27396:1:9" + "src": "27136:1:9" } ] }, { "body": { "nodeType": "YulBlock", - "src": "27559:22:9", + "src": "27299:22:9", "statements": [ { "expression": { @@ -13005,13 +12823,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "27561:16:9" + "src": "27301:16:9" }, "nodeType": "YulFunctionCall", - "src": "27561:18:9" + "src": "27301:18:9" }, "nodeType": "YulExpressionStatement", - "src": "27561:18:9" + "src": "27301:18:9" } ] }, @@ -13020,72 +12838,72 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "27480:1:9" + "src": "27220:1:9" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "27487:66:9", + "src": "27227:66:9", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "27555:1:9" + "src": "27295:1:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "27483:3:9" + "src": "27223:3:9" }, "nodeType": "YulFunctionCall", - "src": "27483:74:9" + "src": "27223:74:9" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "27477:2:9" + "src": "27217:2:9" }, "nodeType": "YulFunctionCall", - "src": "27477:81:9" + "src": "27217:81:9" }, "nodeType": "YulIf", - "src": "27474:107:9" + "src": "27214:107:9" }, { "nodeType": "YulAssignment", - "src": "27591:16:9", + "src": "27331:16:9", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "27602:1:9" + "src": "27342:1:9" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "27605:1:9" + "src": "27345:1:9" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27598:3:9" + "src": "27338:3:9" }, "nodeType": "YulFunctionCall", - "src": "27598:9:9" + "src": "27338:9:9" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "27591:3:9" + "src": "27331:3:9" } ] } @@ -13097,13 +12915,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "27339:1:9", + "src": "27079:1:9", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "27342:1:9", + "src": "27082:1:9", "type": "" } ], @@ -13111,16 +12929,16 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "27348:3:9", + "src": "27088:3:9", "type": "" } ], - "src": "27308:305:9" + "src": "27048:305:9" }, { "body": { "nodeType": "YulBlock", - "src": "27725:124:9", + "src": "27465:124:9", "statements": [ { "expression": { @@ -13130,12 +12948,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "27747:6:9" + "src": "27487:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27755:1:9", + "src": "27495:1:9", "type": "", "value": "0" } @@ -13143,16 +12961,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27743:3:9" + "src": "27483:3:9" }, "nodeType": "YulFunctionCall", - "src": "27743:14:9" + "src": "27483:14:9" }, { "hexValue": "4552433732315374616b696e673a20636f6f6c646f776e2074696d6520697320", "kind": "string", "nodeType": "YulLiteral", - "src": "27759:34:9", + "src": "27499:34:9", "type": "", "value": "ERC721Staking: cooldown time is " } @@ -13160,13 +12978,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27736:6:9" + "src": "27476:6:9" }, "nodeType": "YulFunctionCall", - "src": "27736:58:9" + "src": "27476:58:9" }, "nodeType": "YulExpressionStatement", - "src": "27736:58:9" + "src": "27476:58:9" }, { "expression": { @@ -13176,12 +12994,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "27815:6:9" + "src": "27555:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27823:2:9", + "src": "27563:2:9", "type": "", "value": "32" } @@ -13189,16 +13007,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27811:3:9" + "src": "27551:3:9" }, "nodeType": "YulFunctionCall", - "src": "27811:15:9" + "src": "27551:15:9" }, { "hexValue": "6e6f742072656163686564", "kind": "string", "nodeType": "YulLiteral", - "src": "27828:13:9", + "src": "27568:13:9", "type": "", "value": "not reached" } @@ -13206,13 +13024,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27804:6:9" + "src": "27544:6:9" }, "nodeType": "YulFunctionCall", - "src": "27804:38:9" + "src": "27544:38:9" }, "nodeType": "YulExpressionStatement", - "src": "27804:38:9" + "src": "27544:38:9" } ] }, @@ -13222,31 +13040,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "27717:6:9", + "src": "27457:6:9", "type": "" } ], - "src": "27619:230:9" + "src": "27359:230:9" }, { "body": { "nodeType": "YulBlock", - "src": "28001:220:9", + "src": "27741:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "28011:74:9", + "src": "27751:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "28077:3:9" + "src": "27817:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28082:2:9", + "src": "27822:2:9", "type": "", "value": "43" } @@ -13254,16 +13072,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "28018:58:9" + "src": "27758:58:9" }, "nodeType": "YulFunctionCall", - "src": "28018:67:9" + "src": "27758:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "28011:3:9" + "src": "27751:3:9" } ] }, @@ -13273,34 +13091,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "28183:3:9" + "src": "27923:3:9" } ], "functionName": { "name": "store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", "nodeType": "YulIdentifier", - "src": "28094:88:9" + "src": "27834:88:9" }, "nodeType": "YulFunctionCall", - "src": "28094:93:9" + "src": "27834:93:9" }, "nodeType": "YulExpressionStatement", - "src": "28094:93:9" + "src": "27834:93:9" }, { "nodeType": "YulAssignment", - "src": "28196:19:9", + "src": "27936:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "28207:3:9" + "src": "27947:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28212:2:9", + "src": "27952:2:9", "type": "", "value": "64" } @@ -13308,16 +13126,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28203:3:9" + "src": "27943:3:9" }, "nodeType": "YulFunctionCall", - "src": "28203:12:9" + "src": "27943:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "28196:3:9" + "src": "27936:3:9" } ] } @@ -13329,7 +13147,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "27989:3:9", + "src": "27729:3:9", "type": "" } ], @@ -13337,31 +13155,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "27997:3:9", + "src": "27737:3:9", "type": "" } ], - "src": "27855:366:9" + "src": "27595:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "28398:248:9", + "src": "28138:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "28408:26:9", + "src": "28148:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28420:9:9" + "src": "28160:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28431:2:9", + "src": "28171:2:9", "type": "", "value": "32" } @@ -13369,16 +13187,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28416:3:9" + "src": "28156:3:9" }, "nodeType": "YulFunctionCall", - "src": "28416:18:9" + "src": "28156:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28408:4:9" + "src": "28148:4:9" } ] }, @@ -13390,12 +13208,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28455:9:9" + "src": "28195:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28466:1:9", + "src": "28206:1:9", "type": "", "value": "0" } @@ -13403,68 +13221,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28451:3:9" + "src": "28191:3:9" }, "nodeType": "YulFunctionCall", - "src": "28451:17:9" + "src": "28191:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28474:4:9" + "src": "28214:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28480:9:9" + "src": "28220:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "28470:3:9" + "src": "28210:3:9" }, "nodeType": "YulFunctionCall", - "src": "28470:20:9" + "src": "28210:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28444:6:9" + "src": "28184:6:9" }, "nodeType": "YulFunctionCall", - "src": "28444:47:9" + "src": "28184:47:9" }, "nodeType": "YulExpressionStatement", - "src": "28444:47:9" + "src": "28184:47:9" }, { "nodeType": "YulAssignment", - "src": "28500:139:9", + "src": "28240:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28634:4:9" + "src": "28374:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "28508:124:9" + "src": "28248:124:9" }, "nodeType": "YulFunctionCall", - "src": "28508:131:9" + "src": "28248:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28500:4:9" + "src": "28240:4:9" } ] } @@ -13476,7 +13294,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "28378:9:9", + "src": "28118:9:9", "type": "" } ], @@ -13484,31 +13302,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "28393:4:9", + "src": "28133:4:9", "type": "" } ], - "src": "28227:419:9" + "src": "27967:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "28772:200:9", + "src": "28512:200:9", "statements": [ { "nodeType": "YulAssignment", - "src": "28782:26:9", + "src": "28522:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28794:9:9" + "src": "28534:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28805:2:9", + "src": "28545:2:9", "type": "", "value": "64" } @@ -13516,16 +13334,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28790:3:9" + "src": "28530:3:9" }, "nodeType": "YulFunctionCall", - "src": "28790:18:9" + "src": "28530:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28782:4:9" + "src": "28522:4:9" } ] }, @@ -13535,19 +13353,19 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "28862:6:9" + "src": "28602:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28875:9:9" + "src": "28615:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28886:1:9", + "src": "28626:1:9", "type": "", "value": "0" } @@ -13555,22 +13373,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28871:3:9" + "src": "28611:3:9" }, "nodeType": "YulFunctionCall", - "src": "28871:17:9" + "src": "28611:17:9" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", - "src": "28818:43:9" + "src": "28558:43:9" }, "nodeType": "YulFunctionCall", - "src": "28818:71:9" + "src": "28558:71:9" }, "nodeType": "YulExpressionStatement", - "src": "28818:71:9" + "src": "28558:71:9" }, { "expression": { @@ -13578,19 +13396,19 @@ { "name": "value1", "nodeType": "YulIdentifier", - "src": "28937:6:9" + "src": "28677:6:9" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28950:9:9" + "src": "28690:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28961:2:9", + "src": "28701:2:9", "type": "", "value": "32" } @@ -13598,22 +13416,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28946:3:9" + "src": "28686:3:9" }, "nodeType": "YulFunctionCall", - "src": "28946:18:9" + "src": "28686:18:9" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", - "src": "28899:37:9" + "src": "28639:37:9" }, "nodeType": "YulFunctionCall", - "src": "28899:66:9" + "src": "28639:66:9" }, "nodeType": "YulExpressionStatement", - "src": "28899:66:9" + "src": "28639:66:9" } ] }, @@ -13623,19 +13441,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "28736:9:9", + "src": "28476:9:9", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "28748:6:9", + "src": "28488:6:9", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "28756:6:9", + "src": "28496:6:9", "type": "" } ], @@ -13643,16 +13461,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "28767:4:9", + "src": "28507:4:9", "type": "" } ], - "src": "28652:320:9" + "src": "28392:320:9" }, { "body": { "nodeType": "YulBlock", - "src": "29084:119:9", + "src": "28824:119:9", "statements": [ { "expression": { @@ -13662,12 +13480,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "29106:6:9" + "src": "28846:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29114:1:9", + "src": "28854:1:9", "type": "", "value": "0" } @@ -13675,16 +13493,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29102:3:9" + "src": "28842:3:9" }, "nodeType": "YulFunctionCall", - "src": "29102:14:9" + "src": "28842:14:9" }, { "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", "kind": "string", "nodeType": "YulLiteral", - "src": "29118:34:9", + "src": "28858:34:9", "type": "", "value": "Ownable: new owner is the zero a" } @@ -13692,13 +13510,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29095:6:9" + "src": "28835:6:9" }, "nodeType": "YulFunctionCall", - "src": "29095:58:9" + "src": "28835:58:9" }, "nodeType": "YulExpressionStatement", - "src": "29095:58:9" + "src": "28835:58:9" }, { "expression": { @@ -13708,12 +13526,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "29174:6:9" + "src": "28914:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29182:2:9", + "src": "28922:2:9", "type": "", "value": "32" } @@ -13721,16 +13539,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29170:3:9" + "src": "28910:3:9" }, "nodeType": "YulFunctionCall", - "src": "29170:15:9" + "src": "28910:15:9" }, { "hexValue": "646472657373", "kind": "string", "nodeType": "YulLiteral", - "src": "29187:8:9", + "src": "28927:8:9", "type": "", "value": "ddress" } @@ -13738,13 +13556,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29163:6:9" + "src": "28903:6:9" }, "nodeType": "YulFunctionCall", - "src": "29163:33:9" + "src": "28903:33:9" }, "nodeType": "YulExpressionStatement", - "src": "29163:33:9" + "src": "28903:33:9" } ] }, @@ -13754,31 +13572,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "29076:6:9", + "src": "28816:6:9", "type": "" } ], - "src": "28978:225:9" + "src": "28718:225:9" }, { "body": { "nodeType": "YulBlock", - "src": "29355:220:9", + "src": "29095:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "29365:74:9", + "src": "29105:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29431:3:9" + "src": "29171:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29436:2:9", + "src": "29176:2:9", "type": "", "value": "38" } @@ -13786,16 +13604,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "29372:58:9" + "src": "29112:58:9" }, "nodeType": "YulFunctionCall", - "src": "29372:67:9" + "src": "29112:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29365:3:9" + "src": "29105:3:9" } ] }, @@ -13805,34 +13623,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29537:3:9" + "src": "29277:3:9" } ], "functionName": { "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "nodeType": "YulIdentifier", - "src": "29448:88:9" + "src": "29188:88:9" }, "nodeType": "YulFunctionCall", - "src": "29448:93:9" + "src": "29188:93:9" }, "nodeType": "YulExpressionStatement", - "src": "29448:93:9" + "src": "29188:93:9" }, { "nodeType": "YulAssignment", - "src": "29550:19:9", + "src": "29290:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "29561:3:9" + "src": "29301:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29566:2:9", + "src": "29306:2:9", "type": "", "value": "64" } @@ -13840,16 +13658,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29557:3:9" + "src": "29297:3:9" }, "nodeType": "YulFunctionCall", - "src": "29557:12:9" + "src": "29297:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "29550:3:9" + "src": "29290:3:9" } ] } @@ -13861,7 +13679,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "29343:3:9", + "src": "29083:3:9", "type": "" } ], @@ -13869,31 +13687,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "29351:3:9", + "src": "29091:3:9", "type": "" } ], - "src": "29209:366:9" + "src": "28949:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "29752:248:9", + "src": "29492:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "29762:26:9", + "src": "29502:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29774:9:9" + "src": "29514:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29785:2:9", + "src": "29525:2:9", "type": "", "value": "32" } @@ -13901,16 +13719,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29770:3:9" + "src": "29510:3:9" }, "nodeType": "YulFunctionCall", - "src": "29770:18:9" + "src": "29510:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29762:4:9" + "src": "29502:4:9" } ] }, @@ -13922,12 +13740,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29809:9:9" + "src": "29549:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29820:1:9", + "src": "29560:1:9", "type": "", "value": "0" } @@ -13935,68 +13753,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29805:3:9" + "src": "29545:3:9" }, "nodeType": "YulFunctionCall", - "src": "29805:17:9" + "src": "29545:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29828:4:9" + "src": "29568:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29834:9:9" + "src": "29574:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "29824:3:9" + "src": "29564:3:9" }, "nodeType": "YulFunctionCall", - "src": "29824:20:9" + "src": "29564:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29798:6:9" + "src": "29538:6:9" }, "nodeType": "YulFunctionCall", - "src": "29798:47:9" + "src": "29538:47:9" }, "nodeType": "YulExpressionStatement", - "src": "29798:47:9" + "src": "29538:47:9" }, { "nodeType": "YulAssignment", - "src": "29854:139:9", + "src": "29594:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29988:4:9" + "src": "29728:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "29862:124:9" + "src": "29602:124:9" }, "nodeType": "YulFunctionCall", - "src": "29862:131:9" + "src": "29602:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29854:4:9" + "src": "29594:4:9" } ] } @@ -14008,7 +13826,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "29732:9:9", + "src": "29472:9:9", "type": "" } ], @@ -14016,16 +13834,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "29747:4:9", + "src": "29487:4:9", "type": "" } ], - "src": "29581:419:9" + "src": "29321:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "30112:76:9", + "src": "29852:76:9", "statements": [ { "expression": { @@ -14035,12 +13853,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "30134:6:9" + "src": "29874:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30142:1:9", + "src": "29882:1:9", "type": "", "value": "0" } @@ -14048,16 +13866,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30130:3:9" + "src": "29870:3:9" }, "nodeType": "YulFunctionCall", - "src": "30130:14:9" + "src": "29870:14:9" }, { "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "kind": "string", "nodeType": "YulLiteral", - "src": "30146:34:9", + "src": "29886:34:9", "type": "", "value": "Ownable: caller is not the owner" } @@ -14065,13 +13883,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30123:6:9" + "src": "29863:6:9" }, "nodeType": "YulFunctionCall", - "src": "30123:58:9" + "src": "29863:58:9" }, "nodeType": "YulExpressionStatement", - "src": "30123:58:9" + "src": "29863:58:9" } ] }, @@ -14081,31 +13899,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "30104:6:9", + "src": "29844:6:9", "type": "" } ], - "src": "30006:182:9" + "src": "29746:182:9" }, { "body": { "nodeType": "YulBlock", - "src": "30340:220:9", + "src": "30080:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "30350:74:9", + "src": "30090:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30416:3:9" + "src": "30156:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30421:2:9", + "src": "30161:2:9", "type": "", "value": "32" } @@ -14113,16 +13931,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "30357:58:9" + "src": "30097:58:9" }, "nodeType": "YulFunctionCall", - "src": "30357:67:9" + "src": "30097:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30350:3:9" + "src": "30090:3:9" } ] }, @@ -14132,34 +13950,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30522:3:9" + "src": "30262:3:9" } ], "functionName": { "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "nodeType": "YulIdentifier", - "src": "30433:88:9" + "src": "30173:88:9" }, "nodeType": "YulFunctionCall", - "src": "30433:93:9" + "src": "30173:93:9" }, "nodeType": "YulExpressionStatement", - "src": "30433:93:9" + "src": "30173:93:9" }, { "nodeType": "YulAssignment", - "src": "30535:19:9", + "src": "30275:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "30546:3:9" + "src": "30286:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30551:2:9", + "src": "30291:2:9", "type": "", "value": "32" } @@ -14167,16 +13985,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30542:3:9" + "src": "30282:3:9" }, "nodeType": "YulFunctionCall", - "src": "30542:12:9" + "src": "30282:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "30535:3:9" + "src": "30275:3:9" } ] } @@ -14188,7 +14006,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "30328:3:9", + "src": "30068:3:9", "type": "" } ], @@ -14196,31 +14014,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "30336:3:9", + "src": "30076:3:9", "type": "" } ], - "src": "30194:366:9" + "src": "29934:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "30737:248:9", + "src": "30477:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "30747:26:9", + "src": "30487:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30759:9:9" + "src": "30499:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30770:2:9", + "src": "30510:2:9", "type": "", "value": "32" } @@ -14228,16 +14046,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30755:3:9" + "src": "30495:3:9" }, "nodeType": "YulFunctionCall", - "src": "30755:18:9" + "src": "30495:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30747:4:9" + "src": "30487:4:9" } ] }, @@ -14249,12 +14067,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30794:9:9" + "src": "30534:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30805:1:9", + "src": "30545:1:9", "type": "", "value": "0" } @@ -14262,68 +14080,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30790:3:9" + "src": "30530:3:9" }, "nodeType": "YulFunctionCall", - "src": "30790:17:9" + "src": "30530:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30813:4:9" + "src": "30553:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30819:9:9" + "src": "30559:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "30809:3:9" + "src": "30549:3:9" }, "nodeType": "YulFunctionCall", - "src": "30809:20:9" + "src": "30549:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30783:6:9" + "src": "30523:6:9" }, "nodeType": "YulFunctionCall", - "src": "30783:47:9" + "src": "30523:47:9" }, "nodeType": "YulExpressionStatement", - "src": "30783:47:9" + "src": "30523:47:9" }, { "nodeType": "YulAssignment", - "src": "30839:139:9", + "src": "30579:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30973:4:9" + "src": "30713:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "30847:124:9" + "src": "30587:124:9" }, "nodeType": "YulFunctionCall", - "src": "30847:131:9" + "src": "30587:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30839:4:9" + "src": "30579:4:9" } ] } @@ -14335,7 +14153,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "30717:9:9", + "src": "30457:9:9", "type": "" } ], @@ -14343,16 +14161,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "30732:4:9", + "src": "30472:4:9", "type": "" } ], - "src": "30566:419:9" + "src": "30306:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "31097:75:9", + "src": "30837:75:9", "statements": [ { "expression": { @@ -14362,12 +14180,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "31119:6:9" + "src": "30859:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31127:1:9", + "src": "30867:1:9", "type": "", "value": "0" } @@ -14375,16 +14193,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31115:3:9" + "src": "30855:3:9" }, "nodeType": "YulFunctionCall", - "src": "31115:14:9" + "src": "30855:14:9" }, { "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", "kind": "string", "nodeType": "YulLiteral", - "src": "31131:33:9", + "src": "30871:33:9", "type": "", "value": "ReentrancyGuard: reentrant call" } @@ -14392,13 +14210,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31108:6:9" + "src": "30848:6:9" }, "nodeType": "YulFunctionCall", - "src": "31108:57:9" + "src": "30848:57:9" }, "nodeType": "YulExpressionStatement", - "src": "31108:57:9" + "src": "30848:57:9" } ] }, @@ -14408,31 +14226,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "31089:6:9", + "src": "30829:6:9", "type": "" } ], - "src": "30991:181:9" + "src": "30731:181:9" }, { "body": { "nodeType": "YulBlock", - "src": "31324:220:9", + "src": "31064:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "31334:74:9", + "src": "31074:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31400:3:9" + "src": "31140:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31405:2:9", + "src": "31145:2:9", "type": "", "value": "31" } @@ -14440,16 +14258,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "31341:58:9" + "src": "31081:58:9" }, "nodeType": "YulFunctionCall", - "src": "31341:67:9" + "src": "31081:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31334:3:9" + "src": "31074:3:9" } ] }, @@ -14459,34 +14277,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31506:3:9" + "src": "31246:3:9" } ], "functionName": { "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", "nodeType": "YulIdentifier", - "src": "31417:88:9" + "src": "31157:88:9" }, "nodeType": "YulFunctionCall", - "src": "31417:93:9" + "src": "31157:93:9" }, "nodeType": "YulExpressionStatement", - "src": "31417:93:9" + "src": "31157:93:9" }, { "nodeType": "YulAssignment", - "src": "31519:19:9", + "src": "31259:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "31530:3:9" + "src": "31270:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31535:2:9", + "src": "31275:2:9", "type": "", "value": "32" } @@ -14494,16 +14312,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31526:3:9" + "src": "31266:3:9" }, "nodeType": "YulFunctionCall", - "src": "31526:12:9" + "src": "31266:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "31519:3:9" + "src": "31259:3:9" } ] } @@ -14515,7 +14333,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "31312:3:9", + "src": "31052:3:9", "type": "" } ], @@ -14523,31 +14341,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "31320:3:9", + "src": "31060:3:9", "type": "" } ], - "src": "31178:366:9" + "src": "30918:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "31721:248:9", + "src": "31461:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "31731:26:9", + "src": "31471:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31743:9:9" + "src": "31483:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31754:2:9", + "src": "31494:2:9", "type": "", "value": "32" } @@ -14555,16 +14373,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31739:3:9" + "src": "31479:3:9" }, "nodeType": "YulFunctionCall", - "src": "31739:18:9" + "src": "31479:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31731:4:9" + "src": "31471:4:9" } ] }, @@ -14576,12 +14394,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31778:9:9" + "src": "31518:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31789:1:9", + "src": "31529:1:9", "type": "", "value": "0" } @@ -14589,68 +14407,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31774:3:9" + "src": "31514:3:9" }, "nodeType": "YulFunctionCall", - "src": "31774:17:9" + "src": "31514:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31797:4:9" + "src": "31537:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31803:9:9" + "src": "31543:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "31793:3:9" + "src": "31533:3:9" }, "nodeType": "YulFunctionCall", - "src": "31793:20:9" + "src": "31533:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31767:6:9" + "src": "31507:6:9" }, "nodeType": "YulFunctionCall", - "src": "31767:47:9" + "src": "31507:47:9" }, "nodeType": "YulExpressionStatement", - "src": "31767:47:9" + "src": "31507:47:9" }, { "nodeType": "YulAssignment", - "src": "31823:139:9", + "src": "31563:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31957:4:9" + "src": "31697:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "31831:124:9" + "src": "31571:124:9" }, "nodeType": "YulFunctionCall", - "src": "31831:131:9" + "src": "31571:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31823:4:9" + "src": "31563:4:9" } ] } @@ -14662,7 +14480,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "31701:9:9", + "src": "31441:9:9", "type": "" } ], @@ -14670,16 +14488,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "31716:4:9", + "src": "31456:4:9", "type": "" } ], - "src": "31550:419:9" + "src": "31290:419:9" }, { "body": { "nodeType": "YulBlock", - "src": "32081:60:9", + "src": "31821:60:9", "statements": [ { "expression": { @@ -14689,12 +14507,12 @@ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "32103:6:9" + "src": "31843:6:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32111:1:9", + "src": "31851:1:9", "type": "", "value": "0" } @@ -14702,16 +14520,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32099:3:9" + "src": "31839:3:9" }, "nodeType": "YulFunctionCall", - "src": "32099:14:9" + "src": "31839:14:9" }, { "hexValue": "5061757361626c653a20706175736564", "kind": "string", "nodeType": "YulLiteral", - "src": "32115:18:9", + "src": "31855:18:9", "type": "", "value": "Pausable: paused" } @@ -14719,13 +14537,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "32092:6:9" + "src": "31832:6:9" }, "nodeType": "YulFunctionCall", - "src": "32092:42:9" + "src": "31832:42:9" }, "nodeType": "YulExpressionStatement", - "src": "32092:42:9" + "src": "31832:42:9" } ] }, @@ -14735,31 +14553,31 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "32073:6:9", + "src": "31813:6:9", "type": "" } ], - "src": "31975:166:9" + "src": "31715:166:9" }, { "body": { "nodeType": "YulBlock", - "src": "32293:220:9", + "src": "32033:220:9", "statements": [ { "nodeType": "YulAssignment", - "src": "32303:74:9", + "src": "32043:74:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32369:3:9" + "src": "32109:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32374:2:9", + "src": "32114:2:9", "type": "", "value": "16" } @@ -14767,16 +14585,16 @@ "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "32310:58:9" + "src": "32050:58:9" }, "nodeType": "YulFunctionCall", - "src": "32310:67:9" + "src": "32050:67:9" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32303:3:9" + "src": "32043:3:9" } ] }, @@ -14786,34 +14604,34 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32475:3:9" + "src": "32215:3:9" } ], "functionName": { "name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", "nodeType": "YulIdentifier", - "src": "32386:88:9" + "src": "32126:88:9" }, "nodeType": "YulFunctionCall", - "src": "32386:93:9" + "src": "32126:93:9" }, "nodeType": "YulExpressionStatement", - "src": "32386:93:9" + "src": "32126:93:9" }, { "nodeType": "YulAssignment", - "src": "32488:19:9", + "src": "32228:19:9", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "32499:3:9" + "src": "32239:3:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32504:2:9", + "src": "32244:2:9", "type": "", "value": "32" } @@ -14821,16 +14639,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32495:3:9" + "src": "32235:3:9" }, "nodeType": "YulFunctionCall", - "src": "32495:12:9" + "src": "32235:12:9" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "32488:3:9" + "src": "32228:3:9" } ] } @@ -14842,7 +14660,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "32281:3:9", + "src": "32021:3:9", "type": "" } ], @@ -14850,31 +14668,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "32289:3:9", + "src": "32029:3:9", "type": "" } ], - "src": "32147:366:9" + "src": "31887:366:9" }, { "body": { "nodeType": "YulBlock", - "src": "32690:248:9", + "src": "32430:248:9", "statements": [ { "nodeType": "YulAssignment", - "src": "32700:26:9", + "src": "32440:26:9", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "32712:9:9" + "src": "32452:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32723:2:9", + "src": "32463:2:9", "type": "", "value": "32" } @@ -14882,16 +14700,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32708:3:9" + "src": "32448:3:9" }, "nodeType": "YulFunctionCall", - "src": "32708:18:9" + "src": "32448:18:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "32700:4:9" + "src": "32440:4:9" } ] }, @@ -14903,12 +14721,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "32747:9:9" + "src": "32487:9:9" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "32758:1:9", + "src": "32498:1:9", "type": "", "value": "0" } @@ -14916,68 +14734,68 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32743:3:9" + "src": "32483:3:9" }, "nodeType": "YulFunctionCall", - "src": "32743:17:9" + "src": "32483:17:9" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "32766:4:9" + "src": "32506:4:9" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "32772:9:9" + "src": "32512:9:9" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "32762:3:9" + "src": "32502:3:9" }, "nodeType": "YulFunctionCall", - "src": "32762:20:9" + "src": "32502:20:9" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "32736:6:9" + "src": "32476:6:9" }, "nodeType": "YulFunctionCall", - "src": "32736:47:9" + "src": "32476:47:9" }, "nodeType": "YulExpressionStatement", - "src": "32736:47:9" + "src": "32476:47:9" }, { "nodeType": "YulAssignment", - "src": "32792:139:9", + "src": "32532:139:9", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "32926:4:9" + "src": "32666:4:9" } ], "functionName": { "name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", - "src": "32800:124:9" + "src": "32540:124:9" }, "nodeType": "YulFunctionCall", - "src": "32800:131:9" + "src": "32540:131:9" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "32792:4:9" + "src": "32532:4:9" } ] } @@ -14989,7 +14807,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "32670:9:9", + "src": "32410:9:9", "type": "" } ], @@ -14997,23 +14815,23 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "32685:4:9", + "src": "32425:4:9", "type": "" } ], - "src": "32519:419:9" + "src": "32259:419:9" } ] }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_uint64t_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // uint64[]\n function abi_decode_t_array$_t_uint64_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint64_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_uint64_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint64_t_uint64__to_t_address_t_address_t_uint256_t_uint64_t_uint64__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint64_t_bool__to_t_uint64_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != to\")\n\n mstore(add(memPtr, 32), \"kenIds length\")\n\n }\n\n function abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != st\")\n\n mstore(add(memPtr, 32), \"aketimes length\")\n\n }\n\n function abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nft is not suppor\")\n\n mstore(add(memPtr, 32), \"ted\")\n\n }\n\n function abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: staketime is not \")\n\n mstore(add(memPtr, 32), \"supported\")\n\n }\n\n function abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n // struct ERC721Staking.Staker -> struct ERC721Staking.Staker\n function abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value, pos) {\n let tail := add(pos, 0xa0)\n\n {\n // user\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // nft\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n {\n // start\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x60))\n }\n\n {\n // stakeTime\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x80))\n }\n\n }\n\n function abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value0, pos) -> updatedPos {\n abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value0, pos)\n updatedPos := add(pos, 0xa0)\n }\n\n function array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // struct ERC721Staking.Staker[] -> struct ERC721Staking.Staker[]\n function abi_encode_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != id\")\n\n mstore(add(memPtr, 32), \"s length\")\n\n }\n\n function abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: tokenId is not va\")\n\n mstore(add(memPtr, 32), \"lid\")\n\n }\n\n function abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: user is not the o\")\n\n mstore(add(memPtr, 32), \"wner of this nft\")\n\n }\n\n function abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: cooldown time is \")\n\n mstore(add(memPtr, 32), \"not reached\")\n\n }\n\n function abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: paused\")\n\n }\n\n function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_uint64t_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // uint64[]\n function abi_decode_t_array$_t_uint64_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint64_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_uint64_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint64_t_uint64__to_t_address_t_address_t_uint256_t_uint64_t_uint64__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint64_t_bool__to_t_uint64_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != to\")\n\n mstore(add(memPtr, 32), \"kenIds length\")\n\n }\n\n function abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != st\")\n\n mstore(add(memPtr, 32), \"aketimes length\")\n\n }\n\n function abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nft is not suppor\")\n\n mstore(add(memPtr, 32), \"ted\")\n\n }\n\n function abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: staketime is not \")\n\n mstore(add(memPtr, 32), \"supported\")\n\n }\n\n function abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n // struct ERC721Staking.Staker -> struct ERC721Staking.Staker\n function abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value, pos) {\n let tail := add(pos, 0xa0)\n\n {\n // user\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // nft\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n {\n // start\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x60))\n }\n\n {\n // stakeTime\n\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0x80))\n }\n\n }\n\n function abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value0, pos) -> updatedPos {\n abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(value0, pos)\n updatedPos := add(pos, 0xa0)\n }\n\n function array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // struct ERC721Staking.Staker[] -> struct ERC721Staking.Staker[]\n function abi_encode_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: nfts length != id\")\n\n mstore(add(memPtr, 32), \"s length\")\n\n }\n\n function abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: tokenId is not va\")\n\n mstore(add(memPtr, 32), \"lid\")\n\n }\n\n function abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: user is not the o\")\n\n mstore(add(memPtr, 32), \"wner of this nft\")\n\n }\n\n function abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC721Staking: cooldown time is \")\n\n mstore(add(memPtr, 32), \"not reached\")\n\n }\n\n function abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(memPtr) {\n\n mstore(add(memPtr, 0), \"ReentrancyGuard: reentrant call\")\n\n }\n\n function abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n mstore(add(memPtr, 0), \"Pausable: paused\")\n\n }\n\n function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 9, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "359:3896:8:-:0;;;471:6;438:39;;359:3896;;;;;;;;;;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;;;:32;;:::i;:::-;1716:1:2;1821:7;:22;;;;1006:5:1;996:7;;:15;;;;;;;;;;;;;;;;;;359:3896:8;;640:96:6;693:7;719:10;712:17;;640:96;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;359:3896:8:-;;;;;;;", - "deployedSourceMap": "359:3896:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:162:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4038:215:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3891:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1292:1308;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2604:1056;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;639:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;3708:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1615:84:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;738:47:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;:::i;:::-;;1201:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;438:39:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;833:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;603:162:5;703:6;728:30;;;721:37;;603:162;;;;;;:::o;4038:215:8:-;1094:13:0;:11;:13::i;:::-;4120:14:8::1;4137:15;;4120:32;;4176:16;4158:15;:34;;;;4203:45;4223:6;4231:16;4203:45;;;;;;;:::i;:::-;;;;;;;;4114:139;4038:215:::0;:::o;3891:143::-;1094:13:0;:11;:13::i;:::-;3985:6:8::1;3967:7;:15;3975:6;3967:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;4002:27;4014:6;4022;4002:27;;;;;;;:::i;:::-;;;;;;;;3891:143:::0;;:::o;1292:1308::-;2261:21:2;:19;:21::i;:::-;1239:19:1::1;:17;:19::i;:::-;1479:8:8::2;;:15;;1464:4;;:11;;:30;1449:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;1591:10;;:17;;1576:4;;:11;;:32;1561:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;1678:15;1696:10;1678:28;;1712:27;1755:4;;:11;;1742:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:55;;1773:27;1816:4;;:11;;1803:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:55;;1834:22;1872:4;;:11;;1859:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1834:50;;1895:9;1890:672;1914:4;;:11;;1910:1;:15;1890:672;;;1985:4;1957:32;;:15;:24;1973:4;;1978:1;1973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1957:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;1940:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2096:4;2070:30;;:7;:22;2078:10;;2089:1;2078:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2070:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;2053:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;2178:4;;2183:1;2178:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2170:33;;;2204:7;2221:4;2228:8;;2237:1;2228:11;;;;;;;:::i;:::-;;;;;;;;2170:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2272:15;2248:11;2260:1;2248:14;;;;;;;;:::i;:::-;;;;;;;:40;;;;;;;;;::::0;::::2;2330:10;;2341:1;2330:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2313:11;2325:1;2313:14;;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;2296:11;2308:1;2296:14;;;;;;;;:::i;:::-;;;;;;;:47;;;;;;;;;::::0;::::2;2386:117;;;;;;;;2402:7;2386:117;;;;;;2419:4;;2424:1;2419:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2386:117;;;;;;2436:8;;2445:1;2436:11;;;;;;;:::i;:::-;;;;;;;;2386:117;;;;2457:11;2469:1;2457:14;;;;;;;;:::i;:::-;;;;;;;;2386:117;;;;;;2481:11;2493:1;2481:14;;;;;;;;:::i;:::-;;;;;;;;2386:117;;;;::::0;2351:10:::2;:19;2362:4;;2367:1;2362:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2351:19;;;;;;;;;;;;;;;:32;2371:8;;2380:1;2371:11;;;;;;;:::i;:::-;;;;;;;;2351:32;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2523:10;:19;2534:4;;2539:1;2534:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2523:19;;;;;;;;;;;;;;;:32;2543:8;;2552:1;2543:11;;;;;;;:::i;:::-;;;;;;;;2523:32;;;;;;;;;;;2511:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;:6;2518:1;2511:9;;;;;;;;:::i;:::-;;;;;;;:44;;;;1927:3;;;;;:::i;:::-;;;;1890:672;;;;2579:7;2572:23;;;2588:6;2572:23;;;;;;:::i;:::-;;;;;;;;1443:1157;;;;2303:20:2::0;:18;:20::i;:::-;1292:1308:8;;;;;;:::o;2604:1056::-;2261:21:2;:19;:21::i;:::-;2744:8:8::1;;:15;;2729:4;;:11;;:30;2714:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;2821:15;2839:10;2821:28;;2885:22;2923:8;;:15;;2910:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2885:54;;2950:9;2945:676;2969:8;;:15;;2965:1;:19;2945:676;;;3065:1;3016:51;;:10;:19;3027:4;;3032:1;3027:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3016:19;;;;;;;;;;;;;;;:32;3036:8;;3045:1;3036:11;;;;;;;:::i;:::-;;;;;;;;3016:32;;;;;;;;;;;:37;;;;;;;;;;;;:51;;;;2999:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;3188:7;3147:48;;:10;:19;3158:4;;3163:1;3158:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3147:19;;;;;;;;;;;;;;;:32;3167:8;;3176:1;3167:11;;;;;;;:::i;:::-;;;;;;;;3147:32;;;;;;;;;;;:37;;;;;;;;;;;;:48;;;3130:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;3358:15;3329;;3288:10;:19;3299:4;;3304:1;3299:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3288:19;;;;;;;;;;;;;;;:32;3308:8;;3317:1;3308:11;;;;;;;:::i;:::-;;;;;;;;3288:32;;;;;;;;;;;:38;;;;;;;;;;;;:56;;;;;;:::i;:::-;:85;;3271:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;3453:4;;3458:1;3453:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3445:33;;;3487:4;3494:7;3503:8;;3512:1;3503:11;;;;;;;:::i;:::-;;;;;;;;3445:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3535:10;:19;3546:4;;3551:1;3546:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3535:19;;;;;;;;;;;;;;;:32;3555:8;;3564:1;3555:11;;;;;;;:::i;:::-;;;;;;;;3535:32;;;;;;;;;;;3523:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;:6;3530:1;3523:9;;;;;;;;:::i;:::-;;;;;;;:44;;;;3582:10;:19;3593:4;;3598:1;3593:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3582:19;;;;;;;;;;;;;;;:32;3602:8;;3611:1;3602:11;;;;;;;:::i;:::-;;;;;;;;3582:32;;;;;;;;;;;;3575:39:::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2986:3;;;;;:::i;:::-;;;;2945:676;;;;3639:7;3632:23;;;3648:6;3632:23;;;;;;:::i;:::-;;;;;;;;2708:952;;2303:20:2::0;:18;:20::i;:::-;2604:1056:8;;;;:::o;639:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3708:179::-;1094:13:0;:11;:13::i;:::-;3833:6:8::1;3805:15;:25;3821:8;3805:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3850:32;3865:8;3875:6;3850:32;;;;;;;:::i;:::-;;;;;;;;3708:179:::0;;:::o;1615:84:1:-;1662:4;1685:7;;;;;;;;;;;1678:14;;1615:84;:::o;738:47:8:-;;;;;;;;;;;;;;;;;;;;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1201:85::-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;438:39:8:-;;;;:::o;833:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2336:287:2:-;1759:1;2468:7;;:19;;2460:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1759:1;2598:7;:18;;;;2336:287::o;1767:106:1:-;1837:8;:6;:8::i;:::-;1836:9;1828:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1767:106::o;2629:209:2:-;1716:1;2809:7;:22;;;;2629:209::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;640:96:6:-;693:7;719:10;712:17;;640:96;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:154::-;2556:6;2551:3;2546;2533:30;2618:1;2609:6;2604:3;2600:16;2593:27;2472:154;;;:::o;2632:410::-;2709:5;2734:65;2750:48;2791:6;2750:48;:::i;:::-;2734:65;:::i;:::-;2725:74;;2822:6;2815:5;2808:21;2860:4;2853:5;2849:16;2898:3;2889:6;2884:3;2880:16;2877:25;2874:112;;;2905:79;;:::i;:::-;2874:112;2995:41;3029:6;3024:3;3019;2995:41;:::i;:::-;2715:327;2632:410;;;;;:::o;3061:338::-;3116:5;3165:3;3158:4;3150:6;3146:17;3142:27;3132:122;;3173:79;;:::i;:::-;3132:122;3290:6;3277:20;3315:78;3389:3;3381:6;3374:4;3366:6;3362:17;3315:78;:::i;:::-;3306:87;;3122:277;3061:338;;;;:::o;3405:943::-;3500:6;3508;3516;3524;3573:3;3561:9;3552:7;3548:23;3544:33;3541:120;;;3580:79;;:::i;:::-;3541:120;3700:1;3725:53;3770:7;3761:6;3750:9;3746:22;3725:53;:::i;:::-;3715:63;;3671:117;3827:2;3853:53;3898:7;3889:6;3878:9;3874:22;3853:53;:::i;:::-;3843:63;;3798:118;3955:2;3981:53;4026:7;4017:6;4006:9;4002:22;3981:53;:::i;:::-;3971:63;;3926:118;4111:2;4100:9;4096:18;4083:32;4142:18;4134:6;4131:30;4128:117;;;4164:79;;:::i;:::-;4128:117;4269:62;4323:7;4314:6;4303:9;4299:22;4269:62;:::i;:::-;4259:72;;4054:287;3405:943;;;;;;;:::o;4354:149::-;4390:7;4430:66;4423:5;4419:78;4408:89;;4354:149;;;:::o;4509:115::-;4594:23;4611:5;4594:23;:::i;:::-;4589:3;4582:36;4509:115;;:::o;4630:218::-;4721:4;4759:2;4748:9;4744:18;4736:26;;4772:69;4838:1;4827:9;4823:17;4814:6;4772:69;:::i;:::-;4630:218;;;;:::o;4854:329::-;4913:6;4962:2;4950:9;4941:7;4937:23;4933:32;4930:119;;;4968:79;;:::i;:::-;4930:119;5088:1;5113:53;5158:7;5149:6;5138:9;5134:22;5113:53;:::i;:::-;5103:63;;5059:117;4854:329;;;;:::o;5189:101::-;5225:7;5265:18;5258:5;5254:30;5243:41;;5189:101;;;:::o;5296:120::-;5368:23;5385:5;5368:23;:::i;:::-;5361:5;5358:34;5348:62;;5406:1;5403;5396:12;5348:62;5296:120;:::o;5422:137::-;5467:5;5505:6;5492:20;5483:29;;5521:32;5547:5;5521:32;:::i;:::-;5422:137;;;;:::o;5565:90::-;5599:7;5642:5;5635:13;5628:21;5617:32;;5565:90;;;:::o;5661:116::-;5731:21;5746:5;5731:21;:::i;:::-;5724:5;5721:32;5711:60;;5767:1;5764;5757:12;5711:60;5661:116;:::o;5783:133::-;5826:5;5864:6;5851:20;5842:29;;5880:30;5904:5;5880:30;:::i;:::-;5783:133;;;;:::o;5922:466::-;5986:6;5994;6043:2;6031:9;6022:7;6018:23;6014:32;6011:119;;;6049:79;;:::i;:::-;6011:119;6169:1;6194:52;6238:7;6229:6;6218:9;6214:22;6194:52;:::i;:::-;6184:62;;6140:116;6295:2;6321:50;6363:7;6354:6;6343:9;6339:22;6321:50;:::i;:::-;6311:60;;6266:115;5922:466;;;;;:::o;6394:117::-;6503:1;6500;6493:12;6517:117;6626:1;6623;6616:12;6657:568;6730:8;6740:6;6790:3;6783:4;6775:6;6771:17;6767:27;6757:122;;6798:79;;:::i;:::-;6757:122;6911:6;6898:20;6888:30;;6941:18;6933:6;6930:30;6927:117;;;6963:79;;:::i;:::-;6927:117;7077:4;7069:6;7065:17;7053:29;;7131:3;7123:4;7115:6;7111:17;7101:8;7097:32;7094:41;7091:128;;;7138:79;;:::i;:::-;7091:128;6657:568;;;;;:::o;7248:::-;7321:8;7331:6;7381:3;7374:4;7366:6;7362:17;7358:27;7348:122;;7389:79;;:::i;:::-;7348:122;7502:6;7489:20;7479:30;;7532:18;7524:6;7521:30;7518:117;;;7554:79;;:::i;:::-;7518:117;7668:4;7660:6;7656:17;7644:29;;7722:3;7714:4;7706:6;7702:17;7692:8;7688:32;7685:41;7682:128;;;7729:79;;:::i;:::-;7682:128;7248:568;;;;;:::o;7838:567::-;7910:8;7920:6;7970:3;7963:4;7955:6;7951:17;7947:27;7937:122;;7978:79;;:::i;:::-;7937:122;8091:6;8078:20;8068:30;;8121:18;8113:6;8110:30;8107:117;;;8143:79;;:::i;:::-;8107:117;8257:4;8249:6;8245:17;8233:29;;8311:3;8303:4;8295:6;8291:17;8281:8;8277:32;8274:41;8271:128;;;8318:79;;:::i;:::-;8271:128;7838:567;;;;;:::o;8411:1307::-;8568:6;8576;8584;8592;8600;8608;8657:2;8645:9;8636:7;8632:23;8628:32;8625:119;;;8663:79;;:::i;:::-;8625:119;8811:1;8800:9;8796:17;8783:31;8841:18;8833:6;8830:30;8827:117;;;8863:79;;:::i;:::-;8827:117;8976:80;9048:7;9039:6;9028:9;9024:22;8976:80;:::i;:::-;8958:98;;;;8754:312;9133:2;9122:9;9118:18;9105:32;9164:18;9156:6;9153:30;9150:117;;;9186:79;;:::i;:::-;9150:117;9299:80;9371:7;9362:6;9351:9;9347:22;9299:80;:::i;:::-;9281:98;;;;9076:313;9456:2;9445:9;9441:18;9428:32;9487:18;9479:6;9476:30;9473:117;;;9509:79;;:::i;:::-;9473:117;9622:79;9693:7;9684:6;9673:9;9669:22;9622:79;:::i;:::-;9604:97;;;;9399:312;8411:1307;;;;;;;;:::o;9724:934::-;9846:6;9854;9862;9870;9919:2;9907:9;9898:7;9894:23;9890:32;9887:119;;;9925:79;;:::i;:::-;9887:119;10073:1;10062:9;10058:17;10045:31;10103:18;10095:6;10092:30;10089:117;;;10125:79;;:::i;:::-;10089:117;10238:80;10310:7;10301:6;10290:9;10286:22;10238:80;:::i;:::-;10220:98;;;;10016:312;10395:2;10384:9;10380:18;10367:32;10426:18;10418:6;10415:30;10412:117;;;10448:79;;:::i;:::-;10412:117;10561:80;10633:7;10624:6;10613:9;10609:22;10561:80;:::i;:::-;10543:98;;;;10338:313;9724:934;;;;;;;:::o;10664:474::-;10732:6;10740;10789:2;10777:9;10768:7;10764:23;10760:32;10757:119;;;10795:79;;:::i;:::-;10757:119;10915:1;10940:53;10985:7;10976:6;10965:9;10961:22;10940:53;:::i;:::-;10930:63;;10886:117;11042:2;11068:53;11113:7;11104:6;11093:9;11089:22;11068:53;:::i;:::-;11058:63;;11013:118;10664:474;;;;;:::o;11144:118::-;11231:24;11249:5;11231:24;:::i;:::-;11226:3;11219:37;11144:118;;:::o;11268:::-;11355:24;11373:5;11355:24;:::i;:::-;11350:3;11343:37;11268:118;;:::o;11392:115::-;11477:23;11494:5;11477:23;:::i;:::-;11472:3;11465:36;11392:115;;:::o;11513:656::-;11714:4;11752:3;11741:9;11737:19;11729:27;;11766:71;11834:1;11823:9;11819:17;11810:6;11766:71;:::i;:::-;11847:72;11915:2;11904:9;11900:18;11891:6;11847:72;:::i;:::-;11929;11997:2;11986:9;11982:18;11973:6;11929:72;:::i;:::-;12011:70;12077:2;12066:9;12062:18;12053:6;12011:70;:::i;:::-;12091:71;12157:3;12146:9;12142:19;12133:6;12091:71;:::i;:::-;11513:656;;;;;;;;:::o;12175:468::-;12240:6;12248;12297:2;12285:9;12276:7;12272:23;12268:32;12265:119;;;12303:79;;:::i;:::-;12265:119;12423:1;12448:53;12493:7;12484:6;12473:9;12469:22;12448:53;:::i;:::-;12438:63;;12394:117;12550:2;12576:50;12618:7;12609:6;12598:9;12594:22;12576:50;:::i;:::-;12566:60;;12521:115;12175:468;;;;;:::o;12649:109::-;12730:21;12745:5;12730:21;:::i;:::-;12725:3;12718:34;12649:109;;:::o;12764:210::-;12851:4;12889:2;12878:9;12874:18;12866:26;;12902:65;12964:1;12953:9;12949:17;12940:6;12902:65;:::i;:::-;12764:210;;;;:::o;12980:329::-;13039:6;13088:2;13076:9;13067:7;13063:23;13059:32;13056:119;;;13094:79;;:::i;:::-;13056:119;13214:1;13239:53;13284:7;13275:6;13264:9;13260:22;13239:53;:::i;:::-;13229:63;;13185:117;12980:329;;;;:::o;13315:222::-;13408:4;13446:2;13435:9;13431:18;13423:26;;13459:71;13527:1;13516:9;13512:17;13503:6;13459:71;:::i;:::-;13315:222;;;;:::o;13543:::-;13636:4;13674:2;13663:9;13659:18;13651:26;;13687:71;13755:1;13744:9;13740:17;13731:6;13687:71;:::i;:::-;13543:222;;;;:::o;13771:327::-;13829:6;13878:2;13866:9;13857:7;13853:23;13849:32;13846:119;;;13884:79;;:::i;:::-;13846:119;14004:1;14029:52;14073:7;14064:6;14053:9;14049:22;14029:52;:::i;:::-;14019:62;;13975:116;13771:327;;;;:::o;14104:332::-;14225:4;14263:2;14252:9;14248:18;14240:26;;14276:71;14344:1;14333:9;14329:17;14320:6;14276:71;:::i;:::-;14357:72;14425:2;14414:9;14410:18;14401:6;14357:72;:::i;:::-;14104:332;;;;;:::o;14442:316::-;14555:4;14593:2;14582:9;14578:18;14570:26;;14606:69;14672:1;14661:9;14657:17;14648:6;14606:69;:::i;:::-;14685:66;14747:2;14736:9;14732:18;14723:6;14685:66;:::i;:::-;14442:316;;;;;:::o;14764:169::-;14848:11;14882:6;14877:3;14870:19;14922:4;14917:3;14913:14;14898:29;;14764:169;;;;:::o;14939:232::-;15079:34;15075:1;15067:6;15063:14;15056:58;15148:15;15143:2;15135:6;15131:15;15124:40;14939:232;:::o;15177:366::-;15319:3;15340:67;15404:2;15399:3;15340:67;:::i;:::-;15333:74;;15416:93;15505:3;15416:93;:::i;:::-;15534:2;15529:3;15525:12;15518:19;;15177:366;;;:::o;15549:419::-;15715:4;15753:2;15742:9;15738:18;15730:26;;15802:9;15796:4;15792:20;15788:1;15777:9;15773:17;15766:47;15830:131;15956:4;15830:131;:::i;:::-;15822:139;;15549:419;;;:::o;15974:234::-;16114:34;16110:1;16102:6;16098:14;16091:58;16183:17;16178:2;16170:6;16166:15;16159:42;15974:234;:::o;16214:366::-;16356:3;16377:67;16441:2;16436:3;16377:67;:::i;:::-;16370:74;;16453:93;16542:3;16453:93;:::i;:::-;16571:2;16566:3;16562:12;16555:19;;16214:366;;;:::o;16586:419::-;16752:4;16790:2;16779:9;16775:18;16767:26;;16839:9;16833:4;16829:20;16825:1;16814:9;16810:17;16803:47;16867:131;16993:4;16867:131;:::i;:::-;16859:139;;16586:419;;;:::o;17011:180::-;17059:77;17056:1;17049:88;17156:4;17153:1;17146:15;17180:4;17177:1;17170:15;17197:222;17337:34;17333:1;17325:6;17321:14;17314:58;17406:5;17401:2;17393:6;17389:15;17382:30;17197:222;:::o;17425:366::-;17567:3;17588:67;17652:2;17647:3;17588:67;:::i;:::-;17581:74;;17664:93;17753:3;17664:93;:::i;:::-;17782:2;17777:3;17773:12;17766:19;;17425:366;;;:::o;17797:419::-;17963:4;18001:2;17990:9;17986:18;17978:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18078:131;18204:4;18078:131;:::i;:::-;18070:139;;17797:419;;;:::o;18222:228::-;18362:34;18358:1;18350:6;18346:14;18339:58;18431:11;18426:2;18418:6;18414:15;18407:36;18222:228;:::o;18456:366::-;18598:3;18619:67;18683:2;18678:3;18619:67;:::i;:::-;18612:74;;18695:93;18784:3;18695:93;:::i;:::-;18813:2;18808:3;18804:12;18797:19;;18456:366;;;:::o;18828:419::-;18994:4;19032:2;19021:9;19017:18;19009:26;;19081:9;19075:4;19071:20;19067:1;19056:9;19052:17;19045:47;19109:131;19235:4;19109:131;:::i;:::-;19101:139;;18828:419;;;:::o;19253:442::-;19402:4;19440:2;19429:9;19425:18;19417:26;;19453:71;19521:1;19510:9;19506:17;19497:6;19453:71;:::i;:::-;19534:72;19602:2;19591:9;19587:18;19578:6;19534:72;:::i;:::-;19616;19684:2;19673:9;19669:18;19660:6;19616:72;:::i;:::-;19253:442;;;;;;:::o;19701:180::-;19749:77;19746:1;19739:88;19846:4;19843:1;19836:15;19870:4;19867:1;19860:15;19887:254;19926:3;19945:19;19962:1;19945:19;:::i;:::-;19940:24;;19978:19;19995:1;19978:19;:::i;:::-;19973:24;;20083:1;20063:18;20059:26;20056:1;20053:33;20050:59;;;20089:18;;:::i;:::-;20050:59;20133:1;20130;20126:9;20119:16;;19887:254;;;;:::o;20147:233::-;20186:3;20209:24;20227:5;20209:24;:::i;:::-;20200:33;;20255:66;20248:5;20245:77;20242:103;;;20325:18;;:::i;:::-;20242:103;20372:1;20365:5;20361:13;20354:20;;20147:233;;;:::o;20386:137::-;20476:6;20510:5;20504:12;20494:22;;20386:137;;;:::o;20529:207::-;20651:11;20685:6;20680:3;20673:19;20725:4;20720:3;20716:14;20701:29;;20529:207;;;;:::o;20742:155::-;20832:4;20855:3;20847:11;;20885:4;20880:3;20876:14;20868:22;;20742:155;;;:::o;20903:108::-;20980:24;20998:5;20980:24;:::i;:::-;20975:3;20968:37;20903:108;;:::o;21017:::-;21094:24;21112:5;21094:24;:::i;:::-;21089:3;21082:37;21017:108;;:::o;21131:105::-;21206:23;21223:5;21206:23;:::i;:::-;21201:3;21194:36;21131:105;;:::o;21308:1019::-;21441:4;21436:3;21432:14;21528:4;21521:5;21517:16;21511:23;21547:63;21604:4;21599:3;21595:14;21581:12;21547:63;:::i;:::-;21456:164;21701:4;21694:5;21690:16;21684:23;21720:63;21777:4;21772:3;21768:14;21754:12;21720:63;:::i;:::-;21630:163;21878:4;21871:5;21867:16;21861:23;21897:63;21954:4;21949:3;21945:14;21931:12;21897:63;:::i;:::-;21803:167;22053:4;22046:5;22042:16;22036:23;22072:61;22127:4;22122:3;22118:14;22104:12;22072:61;:::i;:::-;21980:163;22230:4;22223:5;22219:16;22213:23;22249:61;22304:4;22299:3;22295:14;22281:12;22249:61;:::i;:::-;22153:167;21410:917;21308:1019;;:::o;22333:271::-;22448:10;22469:92;22557:3;22549:6;22469:92;:::i;:::-;22593:4;22588:3;22584:14;22570:28;;22333:271;;;;:::o;22610:136::-;22703:4;22735;22730:3;22726:14;22718:22;;22610:136;;;:::o;22822:916::-;22987:3;23016:77;23087:5;23016:77;:::i;:::-;23109:109;23211:6;23206:3;23109:109;:::i;:::-;23102:116;;23242:79;23315:5;23242:79;:::i;:::-;23344:7;23375:1;23360:353;23385:6;23382:1;23379:13;23360:353;;;23461:6;23455:13;23488:109;23593:3;23578:13;23488:109;:::i;:::-;23481:116;;23620:83;23696:6;23620:83;:::i;:::-;23610:93;;23420:293;23407:1;23404;23400:9;23395:14;;23360:353;;;23364:14;23729:3;23722:10;;22992:746;;;22822:916;;;;:::o;23744:465::-;23933:4;23971:2;23960:9;23956:18;23948:26;;24020:9;24014:4;24010:20;24006:1;23995:9;23991:17;23984:47;24048:154;24197:4;24188:6;24048:154;:::i;:::-;24040:162;;23744:465;;;;:::o;24215:227::-;24355:34;24351:1;24343:6;24339:14;24332:58;24424:10;24419:2;24411:6;24407:15;24400:35;24215:227;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:222::-;25385:34;25381:1;25373:6;25369:14;25362:58;25454:5;25449:2;25441:6;25437:15;25430:30;25245:222;:::o;25473:366::-;25615:3;25636:67;25700:2;25695:3;25636:67;:::i;:::-;25629:74;;25712:93;25801:3;25712:93;:::i;:::-;25830:2;25825:3;25821:12;25814:19;;25473:366;;;:::o;25845:419::-;26011:4;26049:2;26038:9;26034:18;26026:26;;26098:9;26092:4;26088:20;26084:1;26073:9;26069:17;26062:47;26126:131;26252:4;26126:131;:::i;:::-;26118:139;;25845:419;;;:::o;26270:235::-;26410:34;26406:1;26398:6;26394:14;26387:58;26479:18;26474:2;26466:6;26462:15;26455:43;26270:235;:::o;26511:366::-;26653:3;26674:67;26738:2;26733:3;26674:67;:::i;:::-;26667:74;;26750:93;26839:3;26750:93;:::i;:::-;26868:2;26863:3;26859:12;26852:19;;26511:366;;;:::o;26883:419::-;27049:4;27087:2;27076:9;27072:18;27064:26;;27136:9;27130:4;27126:20;27122:1;27111:9;27107:17;27100:47;27164:131;27290:4;27164:131;:::i;:::-;27156:139;;26883:419;;;:::o;27308:305::-;27348:3;27367:20;27385:1;27367:20;:::i;:::-;27362:25;;27401:20;27419:1;27401:20;:::i;:::-;27396:25;;27555:1;27487:66;27483:74;27480:1;27477:81;27474:107;;;27561:18;;:::i;:::-;27474:107;27605:1;27602;27598:9;27591:16;;27308:305;;;;:::o;27619:230::-;27759:34;27755:1;27747:6;27743:14;27736:58;27828:13;27823:2;27815:6;27811:15;27804:38;27619:230;:::o;27855:366::-;27997:3;28018:67;28082:2;28077:3;28018:67;:::i;:::-;28011:74;;28094:93;28183:3;28094:93;:::i;:::-;28212:2;28207:3;28203:12;28196:19;;27855:366;;;:::o;28227:419::-;28393:4;28431:2;28420:9;28416:18;28408:26;;28480:9;28474:4;28470:20;28466:1;28455:9;28451:17;28444:47;28508:131;28634:4;28508:131;:::i;:::-;28500:139;;28227:419;;;:::o;28652:320::-;28767:4;28805:2;28794:9;28790:18;28782:26;;28818:71;28886:1;28875:9;28871:17;28862:6;28818:71;:::i;:::-;28899:66;28961:2;28950:9;28946:18;28937:6;28899:66;:::i;:::-;28652:320;;;;;:::o;28978:225::-;29118:34;29114:1;29106:6;29102:14;29095:58;29187:8;29182:2;29174:6;29170:15;29163:33;28978:225;:::o;29209:366::-;29351:3;29372:67;29436:2;29431:3;29372:67;:::i;:::-;29365:74;;29448:93;29537:3;29448:93;:::i;:::-;29566:2;29561:3;29557:12;29550:19;;29209:366;;;:::o;29581:419::-;29747:4;29785:2;29774:9;29770:18;29762:26;;29834:9;29828:4;29824:20;29820:1;29809:9;29805:17;29798:47;29862:131;29988:4;29862:131;:::i;:::-;29854:139;;29581:419;;;:::o;30006:182::-;30146:34;30142:1;30134:6;30130:14;30123:58;30006:182;:::o;30194:366::-;30336:3;30357:67;30421:2;30416:3;30357:67;:::i;:::-;30350:74;;30433:93;30522:3;30433:93;:::i;:::-;30551:2;30546:3;30542:12;30535:19;;30194:366;;;:::o;30566:419::-;30732:4;30770:2;30759:9;30755:18;30747:26;;30819:9;30813:4;30809:20;30805:1;30794:9;30790:17;30783:47;30847:131;30973:4;30847:131;:::i;:::-;30839:139;;30566:419;;;:::o;30991:181::-;31131:33;31127:1;31119:6;31115:14;31108:57;30991:181;:::o;31178:366::-;31320:3;31341:67;31405:2;31400:3;31341:67;:::i;:::-;31334:74;;31417:93;31506:3;31417:93;:::i;:::-;31535:2;31530:3;31526:12;31519:19;;31178:366;;;:::o;31550:419::-;31716:4;31754:2;31743:9;31739:18;31731:26;;31803:9;31797:4;31793:20;31789:1;31778:9;31774:17;31767:47;31831:131;31957:4;31831:131;:::i;:::-;31823:139;;31550:419;;;:::o;31975:166::-;32115:18;32111:1;32103:6;32099:14;32092:42;31975:166;:::o;32147:366::-;32289:3;32310:67;32374:2;32369:3;32310:67;:::i;:::-;32303:74;;32386:93;32475:3;32386:93;:::i;:::-;32504:2;32499:3;32495:12;32488:19;;32147:366;;;:::o;32519:419::-;32685:4;32723:2;32712:9;32708:18;32700:26;;32772:9;32766:4;32762:20;32758:1;32747:9;32743:17;32736:47;32800:131;32926:4;32800:131;:::i;:::-;32792:139;;32519:419;;;:::o", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\n\ncontract ERC721Staking is Ownable, ReentrancyGuard, Pausable, ERC721Holder {\n uint256 public cooldownSeconds = 1 days;\n\n struct Staker {\n address user;\n address nft;\n uint256 tokenId;\n uint64 start;\n uint64 stakeTime;\n }\n // nft address => token id => Staker\n mapping(address => mapping(uint256 => Staker)) public stakingMap;\n // User-selectable stake NFT\n mapping(address => bool) public erc721Supported;\n // User-selectable stake time, in seconds\n mapping(uint64 => bool) public periods;\n // event of stake\n event Staked(address indexed user, Staker[] infos);\n // event of redeem\n event Redeem(address indexed user, Staker[] infos);\n // event of update ERC721 support\n event EditNFTSuppout(address nftToken, bool status);\n // event of update periods\n event EditPeriods(uint64 period, bool status);\n // event of update cooldownSeconds\n event EditCooldownSeconds(uint256 oldVal, uint256 newVal);\n\n function stake(\n address[] calldata nfts,\n uint256[] calldata tokenIds,\n uint64[] calldata staketimes\n ) external nonReentrant whenNotPaused {\n require(\n nfts.length == tokenIds.length,\n \"ERC721Staking: nfts length != tokenIds length\"\n );\n require(\n nfts.length == staketimes.length,\n \"ERC721Staking: nfts length != staketimes length\"\n );\n\n address account = msg.sender;\n uint64[] memory _beginTimes = new uint64[](nfts.length);\n uint64[] memory _stakeTimes = new uint64[](nfts.length);\n Staker[] memory _infos = new Staker[](nfts.length);\n for (uint256 i = 0; i < nfts.length; i++) {\n require(\n erc721Supported[nfts[i]] == true,\n \"ERC721Staking: nft is not supported\"\n );\n\n require(\n periods[staketimes[i]] == true,\n \"ERC721Staking: staketime is not supported\"\n );\n\n IERC721(nfts[i]).safeTransferFrom(account, address(this), tokenIds[i]);\n _beginTimes[i] = uint64(block.timestamp);\n _stakeTimes[i] = _beginTimes[i] + staketimes[i];\n stakingMap[nfts[i]][tokenIds[i]] = Staker(\n account,\n nfts[i],\n tokenIds[i],\n _beginTimes[i],\n _stakeTimes[i]\n );\n _infos[i] = stakingMap[nfts[i]][tokenIds[i]];\n }\n emit Staked(account, _infos);\n }\n\n function redeem(\n address[] calldata nfts,\n uint256[] calldata tokenIds\n ) external nonReentrant {\n require(\n nfts.length == tokenIds.length,\n \"ERC721Staking: nfts length != ids length\"\n );\n address account = msg.sender;\n // check if ids are valid\n Staker[] memory _infos = new Staker[](tokenIds.length);\n for (uint256 i = 0; i < tokenIds.length; i++) {\n require(\n stakingMap[nfts[i]][tokenIds[i]].user != address(0),\n \"ERC721Staking: tokenId is not valid\"\n );\n require(\n stakingMap[nfts[i]][tokenIds[i]].user == account,\n \"ERC721Staking: user is not the owner of this nft\"\n );\n require(\n stakingMap[nfts[i]][tokenIds[i]].start + cooldownSeconds <=\n block.timestamp,\n \"ERC721Staking: cooldown time is not reached\"\n );\n\n IERC721(nfts[i]).safeTransferFrom(address(this), account, tokenIds[i]);\n _infos[i] = stakingMap[nfts[i]][tokenIds[i]];\n delete stakingMap[nfts[i]][tokenIds[i]];\n }\n\n emit Redeem(account, _infos);\n }\n\n /**\n * @dev update ERC721 support\n */\n function updateERC721Support(\n address nftToken,\n bool status\n ) external onlyOwner {\n erc721Supported[nftToken] = status;\n emit EditNFTSuppout(nftToken, status);\n }\n\n function updatePeriods(uint64 period, bool status) external onlyOwner {\n periods[period] = status;\n emit EditPeriods(period, status);\n }\n\n function updateCooldownSeconds(uint256 _cooldownSeconds) external onlyOwner {\n uint256 oldVal = cooldownSeconds;\n cooldownSeconds = _cooldownSeconds;\n emit EditCooldownSeconds(oldVal, _cooldownSeconds);\n }\n}\n", + "sourceMap": "359:3879:8:-:0;;;471:6;438:39;;359:3879;;;;;;;;;;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;;;:32;;:::i;:::-;1716:1:2;1821:7;:22;;;;1006:5:1;996:7;;:15;;;;;;;;;;;;;;;;;;359:3879:8;;640:96:6;693:7;719:10;712:17;;640:96;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;359:3879:8:-;;;;;;;", + "deployedSourceMap": "359:3879:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:162:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4021:215:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3874:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1292:1291;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2587:1056;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;639:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;3691:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1615:84:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;738:47:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;:::i;:::-;;1201:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;438:39:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;833:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;603:162:5;703:6;728:30;;;721:37;;603:162;;;;;;:::o;4021:215:8:-;1094:13:0;:11;:13::i;:::-;4103:14:8::1;4120:15;;4103:32;;4159:16;4141:15;:34;;;;4186:45;4206:6;4214:16;4186:45;;;;;;;:::i;:::-;;;;;;;;4097:139;4021:215:::0;:::o;3874:143::-;1094:13:0;:11;:13::i;:::-;3968:6:8::1;3950:7;:15;3958:6;3950:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3985:27;3997:6;4005;3985:27;;;;;;;:::i;:::-;;;;;;;;3874:143:::0;;:::o;1292:1291::-;2261:21:2;:19;:21::i;:::-;1239:19:1::1;:17;:19::i;:::-;1479:8:8::2;;:15;;1464:4;;:11;;:30;1449:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;1591:10;;:17;;1576:4;;:11;;:32;1561:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;1678:15;1696:10;1678:28;;1712:27;1755:4;;:11;;1742:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:55;;1773:27;1816:4;;:11;;1803:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:55;;1834:22;1872:4;;:11;;1859:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1834:50;;1895:9;1890:655;1914:4;;:11;;1910:1;:15;1890:655;;;1985:4;1957:32;;:15;:24;1973:4;;1978:1;1973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1957:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;1940:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;2096:4;2070:30;;:7;:22;2078:10;;2089:1;2078:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2070:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;2053:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;2178:4;;2183:1;2178:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2170:33;;;2204:7;2221:4;2228:8;;2237:1;2228:11;;;;;;;:::i;:::-;;;;;;;;2170:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2272:15;2248:11;2260:1;2248:14;;;;;;;;:::i;:::-;;;;;;;:40;;;;;;;;;::::0;::::2;2313:10;;2324:1;2313:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2296:11;2308:1;2296:14;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;::::0;::::2;2369:117;;;;;;;;2385:7;2369:117;;;;;;2402:4;;2407:1;2402:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2369:117;;;;;;2419:8;;2428:1;2419:11;;;;;;;:::i;:::-;;;;;;;;2369:117;;;;2440:11;2452:1;2440:14;;;;;;;;:::i;:::-;;;;;;;;2369:117;;;;;;2464:11;2476:1;2464:14;;;;;;;;:::i;:::-;;;;;;;;2369:117;;;;::::0;2334:10:::2;:19;2345:4;;2350:1;2345:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2334:19;;;;;;;;;;;;;;;:32;2354:8;;2363:1;2354:11;;;;;;;:::i;:::-;;;;;;;;2334:32;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:10;:19;2517:4;;2522:1;2517:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2506:19;;;;;;;;;;;;;;;:32;2526:8;;2535:1;2526:11;;;;;;;:::i;:::-;;;;;;;;2506:32;;;;;;;;;;;2494:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;:6;2501:1;2494:9;;;;;;;;:::i;:::-;;;;;;;:44;;;;1927:3;;;;;:::i;:::-;;;;1890:655;;;;2562:7;2555:23;;;2571:6;2555:23;;;;;;:::i;:::-;;;;;;;;1443:1140;;;;2303:20:2::0;:18;:20::i;:::-;1292:1291:8;;;;;;:::o;2587:1056::-;2261:21:2;:19;:21::i;:::-;2727:8:8::1;;:15;;2712:4;;:11;;:30;2697:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;2804:15;2822:10;2804:28;;2868:22;2906:8;;:15;;2893:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2868:54;;2933:9;2928:676;2952:8;;:15;;2948:1;:19;2928:676;;;3048:1;2999:51;;:10;:19;3010:4;;3015:1;3010:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2999:19;;;;;;;;;;;;;;;:32;3019:8;;3028:1;3019:11;;;;;;;:::i;:::-;;;;;;;;2999:32;;;;;;;;;;;:37;;;;;;;;;;;;:51;;;;2982:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;3171:7;3130:48;;:10;:19;3141:4;;3146:1;3141:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3130:19;;;;;;;;;;;;;;;:32;3150:8;;3159:1;3150:11;;;;;;;:::i;:::-;;;;;;;;3130:32;;;;;;;;;;;:37;;;;;;;;;;;;:48;;;3113:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;3341:15;3312;;3271:10;:19;3282:4;;3287:1;3282:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3271:19;;;;;;;;;;;;;;;:32;3291:8;;3300:1;3291:11;;;;;;;:::i;:::-;;;;;;;;3271:32;;;;;;;;;;;:38;;;;;;;;;;;;:56;;;;;;:::i;:::-;:85;;3254:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;3436:4;;3441:1;3436:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3428:33;;;3470:4;3477:7;3486:8;;3495:1;3486:11;;;;;;;:::i;:::-;;;;;;;;3428:70;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3518:10;:19;3529:4;;3534:1;3529:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3518:19;;;;;;;;;;;;;;;:32;3538:8;;3547:1;3538:11;;;;;;;:::i;:::-;;;;;;;;3518:32;;;;;;;;;;;3506:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;:6;3513:1;3506:9;;;;;;;;:::i;:::-;;;;;;;:44;;;;3565:10;:19;3576:4;;3581:1;3576:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3565:19;;;;;;;;;;;;;;;:32;3585:8;;3594:1;3585:11;;;;;;;:::i;:::-;;;;;;;;3565:32;;;;;;;;;;;;3558:39:::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2969:3;;;;;:::i;:::-;;;;2928:676;;;;3622:7;3615:23;;;3631:6;3615:23;;;;;;:::i;:::-;;;;;;;;2691:952;;2303:20:2::0;:18;:20::i;:::-;2587:1056:8;;;;:::o;639:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3691:179::-;1094:13:0;:11;:13::i;:::-;3816:6:8::1;3788:15;:25;3804:8;3788:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3833:32;3848:8;3858:6;3833:32;;;;;;;:::i;:::-;;;;;;;;3691:179:::0;;:::o;1615:84:1:-;1662:4;1685:7;;;;;;;;;;;1678:14;;1615:84;:::o;738:47:8:-;;;;;;;;;;;;;;;;;;;;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1201:85::-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;438:39:8:-;;;;:::o;833:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2336:287:2:-;1759:1;2468:7;;:19;;2460:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1759:1;2598:7;:18;;;;2336:287::o;1767:106:1:-;1837:8;:6;:8::i;:::-;1836:9;1828:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1767:106::o;2629:209:2:-;1716:1;2809:7;:22;;;;2629:209::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;640:96:6:-;693:7;719:10;712:17;;640:96;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:154::-;2556:6;2551:3;2546;2533:30;2618:1;2609:6;2604:3;2600:16;2593:27;2472:154;;;:::o;2632:410::-;2709:5;2734:65;2750:48;2791:6;2750:48;:::i;:::-;2734:65;:::i;:::-;2725:74;;2822:6;2815:5;2808:21;2860:4;2853:5;2849:16;2898:3;2889:6;2884:3;2880:16;2877:25;2874:112;;;2905:79;;:::i;:::-;2874:112;2995:41;3029:6;3024:3;3019;2995:41;:::i;:::-;2715:327;2632:410;;;;;:::o;3061:338::-;3116:5;3165:3;3158:4;3150:6;3146:17;3142:27;3132:122;;3173:79;;:::i;:::-;3132:122;3290:6;3277:20;3315:78;3389:3;3381:6;3374:4;3366:6;3362:17;3315:78;:::i;:::-;3306:87;;3122:277;3061:338;;;;:::o;3405:943::-;3500:6;3508;3516;3524;3573:3;3561:9;3552:7;3548:23;3544:33;3541:120;;;3580:79;;:::i;:::-;3541:120;3700:1;3725:53;3770:7;3761:6;3750:9;3746:22;3725:53;:::i;:::-;3715:63;;3671:117;3827:2;3853:53;3898:7;3889:6;3878:9;3874:22;3853:53;:::i;:::-;3843:63;;3798:118;3955:2;3981:53;4026:7;4017:6;4006:9;4002:22;3981:53;:::i;:::-;3971:63;;3926:118;4111:2;4100:9;4096:18;4083:32;4142:18;4134:6;4131:30;4128:117;;;4164:79;;:::i;:::-;4128:117;4269:62;4323:7;4314:6;4303:9;4299:22;4269:62;:::i;:::-;4259:72;;4054:287;3405:943;;;;;;;:::o;4354:149::-;4390:7;4430:66;4423:5;4419:78;4408:89;;4354:149;;;:::o;4509:115::-;4594:23;4611:5;4594:23;:::i;:::-;4589:3;4582:36;4509:115;;:::o;4630:218::-;4721:4;4759:2;4748:9;4744:18;4736:26;;4772:69;4838:1;4827:9;4823:17;4814:6;4772:69;:::i;:::-;4630:218;;;;:::o;4854:329::-;4913:6;4962:2;4950:9;4941:7;4937:23;4933:32;4930:119;;;4968:79;;:::i;:::-;4930:119;5088:1;5113:53;5158:7;5149:6;5138:9;5134:22;5113:53;:::i;:::-;5103:63;;5059:117;4854:329;;;;:::o;5189:101::-;5225:7;5265:18;5258:5;5254:30;5243:41;;5189:101;;;:::o;5296:120::-;5368:23;5385:5;5368:23;:::i;:::-;5361:5;5358:34;5348:62;;5406:1;5403;5396:12;5348:62;5296:120;:::o;5422:137::-;5467:5;5505:6;5492:20;5483:29;;5521:32;5547:5;5521:32;:::i;:::-;5422:137;;;;:::o;5565:90::-;5599:7;5642:5;5635:13;5628:21;5617:32;;5565:90;;;:::o;5661:116::-;5731:21;5746:5;5731:21;:::i;:::-;5724:5;5721:32;5711:60;;5767:1;5764;5757:12;5711:60;5661:116;:::o;5783:133::-;5826:5;5864:6;5851:20;5842:29;;5880:30;5904:5;5880:30;:::i;:::-;5783:133;;;;:::o;5922:466::-;5986:6;5994;6043:2;6031:9;6022:7;6018:23;6014:32;6011:119;;;6049:79;;:::i;:::-;6011:119;6169:1;6194:52;6238:7;6229:6;6218:9;6214:22;6194:52;:::i;:::-;6184:62;;6140:116;6295:2;6321:50;6363:7;6354:6;6343:9;6339:22;6321:50;:::i;:::-;6311:60;;6266:115;5922:466;;;;;:::o;6394:117::-;6503:1;6500;6493:12;6517:117;6626:1;6623;6616:12;6657:568;6730:8;6740:6;6790:3;6783:4;6775:6;6771:17;6767:27;6757:122;;6798:79;;:::i;:::-;6757:122;6911:6;6898:20;6888:30;;6941:18;6933:6;6930:30;6927:117;;;6963:79;;:::i;:::-;6927:117;7077:4;7069:6;7065:17;7053:29;;7131:3;7123:4;7115:6;7111:17;7101:8;7097:32;7094:41;7091:128;;;7138:79;;:::i;:::-;7091:128;6657:568;;;;;:::o;7248:::-;7321:8;7331:6;7381:3;7374:4;7366:6;7362:17;7358:27;7348:122;;7389:79;;:::i;:::-;7348:122;7502:6;7489:20;7479:30;;7532:18;7524:6;7521:30;7518:117;;;7554:79;;:::i;:::-;7518:117;7668:4;7660:6;7656:17;7644:29;;7722:3;7714:4;7706:6;7702:17;7692:8;7688:32;7685:41;7682:128;;;7729:79;;:::i;:::-;7682:128;7248:568;;;;;:::o;7838:567::-;7910:8;7920:6;7970:3;7963:4;7955:6;7951:17;7947:27;7937:122;;7978:79;;:::i;:::-;7937:122;8091:6;8078:20;8068:30;;8121:18;8113:6;8110:30;8107:117;;;8143:79;;:::i;:::-;8107:117;8257:4;8249:6;8245:17;8233:29;;8311:3;8303:4;8295:6;8291:17;8281:8;8277:32;8274:41;8271:128;;;8318:79;;:::i;:::-;8271:128;7838:567;;;;;:::o;8411:1307::-;8568:6;8576;8584;8592;8600;8608;8657:2;8645:9;8636:7;8632:23;8628:32;8625:119;;;8663:79;;:::i;:::-;8625:119;8811:1;8800:9;8796:17;8783:31;8841:18;8833:6;8830:30;8827:117;;;8863:79;;:::i;:::-;8827:117;8976:80;9048:7;9039:6;9028:9;9024:22;8976:80;:::i;:::-;8958:98;;;;8754:312;9133:2;9122:9;9118:18;9105:32;9164:18;9156:6;9153:30;9150:117;;;9186:79;;:::i;:::-;9150:117;9299:80;9371:7;9362:6;9351:9;9347:22;9299:80;:::i;:::-;9281:98;;;;9076:313;9456:2;9445:9;9441:18;9428:32;9487:18;9479:6;9476:30;9473:117;;;9509:79;;:::i;:::-;9473:117;9622:79;9693:7;9684:6;9673:9;9669:22;9622:79;:::i;:::-;9604:97;;;;9399:312;8411:1307;;;;;;;;:::o;9724:934::-;9846:6;9854;9862;9870;9919:2;9907:9;9898:7;9894:23;9890:32;9887:119;;;9925:79;;:::i;:::-;9887:119;10073:1;10062:9;10058:17;10045:31;10103:18;10095:6;10092:30;10089:117;;;10125:79;;:::i;:::-;10089:117;10238:80;10310:7;10301:6;10290:9;10286:22;10238:80;:::i;:::-;10220:98;;;;10016:312;10395:2;10384:9;10380:18;10367:32;10426:18;10418:6;10415:30;10412:117;;;10448:79;;:::i;:::-;10412:117;10561:80;10633:7;10624:6;10613:9;10609:22;10561:80;:::i;:::-;10543:98;;;;10338:313;9724:934;;;;;;;:::o;10664:474::-;10732:6;10740;10789:2;10777:9;10768:7;10764:23;10760:32;10757:119;;;10795:79;;:::i;:::-;10757:119;10915:1;10940:53;10985:7;10976:6;10965:9;10961:22;10940:53;:::i;:::-;10930:63;;10886:117;11042:2;11068:53;11113:7;11104:6;11093:9;11089:22;11068:53;:::i;:::-;11058:63;;11013:118;10664:474;;;;;:::o;11144:118::-;11231:24;11249:5;11231:24;:::i;:::-;11226:3;11219:37;11144:118;;:::o;11268:::-;11355:24;11373:5;11355:24;:::i;:::-;11350:3;11343:37;11268:118;;:::o;11392:115::-;11477:23;11494:5;11477:23;:::i;:::-;11472:3;11465:36;11392:115;;:::o;11513:656::-;11714:4;11752:3;11741:9;11737:19;11729:27;;11766:71;11834:1;11823:9;11819:17;11810:6;11766:71;:::i;:::-;11847:72;11915:2;11904:9;11900:18;11891:6;11847:72;:::i;:::-;11929;11997:2;11986:9;11982:18;11973:6;11929:72;:::i;:::-;12011:70;12077:2;12066:9;12062:18;12053:6;12011:70;:::i;:::-;12091:71;12157:3;12146:9;12142:19;12133:6;12091:71;:::i;:::-;11513:656;;;;;;;;:::o;12175:468::-;12240:6;12248;12297:2;12285:9;12276:7;12272:23;12268:32;12265:119;;;12303:79;;:::i;:::-;12265:119;12423:1;12448:53;12493:7;12484:6;12473:9;12469:22;12448:53;:::i;:::-;12438:63;;12394:117;12550:2;12576:50;12618:7;12609:6;12598:9;12594:22;12576:50;:::i;:::-;12566:60;;12521:115;12175:468;;;;;:::o;12649:109::-;12730:21;12745:5;12730:21;:::i;:::-;12725:3;12718:34;12649:109;;:::o;12764:210::-;12851:4;12889:2;12878:9;12874:18;12866:26;;12902:65;12964:1;12953:9;12949:17;12940:6;12902:65;:::i;:::-;12764:210;;;;:::o;12980:329::-;13039:6;13088:2;13076:9;13067:7;13063:23;13059:32;13056:119;;;13094:79;;:::i;:::-;13056:119;13214:1;13239:53;13284:7;13275:6;13264:9;13260:22;13239:53;:::i;:::-;13229:63;;13185:117;12980:329;;;;:::o;13315:222::-;13408:4;13446:2;13435:9;13431:18;13423:26;;13459:71;13527:1;13516:9;13512:17;13503:6;13459:71;:::i;:::-;13315:222;;;;:::o;13543:::-;13636:4;13674:2;13663:9;13659:18;13651:26;;13687:71;13755:1;13744:9;13740:17;13731:6;13687:71;:::i;:::-;13543:222;;;;:::o;13771:327::-;13829:6;13878:2;13866:9;13857:7;13853:23;13849:32;13846:119;;;13884:79;;:::i;:::-;13846:119;14004:1;14029:52;14073:7;14064:6;14053:9;14049:22;14029:52;:::i;:::-;14019:62;;13975:116;13771:327;;;;:::o;14104:332::-;14225:4;14263:2;14252:9;14248:18;14240:26;;14276:71;14344:1;14333:9;14329:17;14320:6;14276:71;:::i;:::-;14357:72;14425:2;14414:9;14410:18;14401:6;14357:72;:::i;:::-;14104:332;;;;;:::o;14442:316::-;14555:4;14593:2;14582:9;14578:18;14570:26;;14606:69;14672:1;14661:9;14657:17;14648:6;14606:69;:::i;:::-;14685:66;14747:2;14736:9;14732:18;14723:6;14685:66;:::i;:::-;14442:316;;;;;:::o;14764:169::-;14848:11;14882:6;14877:3;14870:19;14922:4;14917:3;14913:14;14898:29;;14764:169;;;;:::o;14939:232::-;15079:34;15075:1;15067:6;15063:14;15056:58;15148:15;15143:2;15135:6;15131:15;15124:40;14939:232;:::o;15177:366::-;15319:3;15340:67;15404:2;15399:3;15340:67;:::i;:::-;15333:74;;15416:93;15505:3;15416:93;:::i;:::-;15534:2;15529:3;15525:12;15518:19;;15177:366;;;:::o;15549:419::-;15715:4;15753:2;15742:9;15738:18;15730:26;;15802:9;15796:4;15792:20;15788:1;15777:9;15773:17;15766:47;15830:131;15956:4;15830:131;:::i;:::-;15822:139;;15549:419;;;:::o;15974:234::-;16114:34;16110:1;16102:6;16098:14;16091:58;16183:17;16178:2;16170:6;16166:15;16159:42;15974:234;:::o;16214:366::-;16356:3;16377:67;16441:2;16436:3;16377:67;:::i;:::-;16370:74;;16453:93;16542:3;16453:93;:::i;:::-;16571:2;16566:3;16562:12;16555:19;;16214:366;;;:::o;16586:419::-;16752:4;16790:2;16779:9;16775:18;16767:26;;16839:9;16833:4;16829:20;16825:1;16814:9;16810:17;16803:47;16867:131;16993:4;16867:131;:::i;:::-;16859:139;;16586:419;;;:::o;17011:180::-;17059:77;17056:1;17049:88;17156:4;17153:1;17146:15;17180:4;17177:1;17170:15;17197:222;17337:34;17333:1;17325:6;17321:14;17314:58;17406:5;17401:2;17393:6;17389:15;17382:30;17197:222;:::o;17425:366::-;17567:3;17588:67;17652:2;17647:3;17588:67;:::i;:::-;17581:74;;17664:93;17753:3;17664:93;:::i;:::-;17782:2;17777:3;17773:12;17766:19;;17425:366;;;:::o;17797:419::-;17963:4;18001:2;17990:9;17986:18;17978:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18078:131;18204:4;18078:131;:::i;:::-;18070:139;;17797:419;;;:::o;18222:228::-;18362:34;18358:1;18350:6;18346:14;18339:58;18431:11;18426:2;18418:6;18414:15;18407:36;18222:228;:::o;18456:366::-;18598:3;18619:67;18683:2;18678:3;18619:67;:::i;:::-;18612:74;;18695:93;18784:3;18695:93;:::i;:::-;18813:2;18808:3;18804:12;18797:19;;18456:366;;;:::o;18828:419::-;18994:4;19032:2;19021:9;19017:18;19009:26;;19081:9;19075:4;19071:20;19067:1;19056:9;19052:17;19045:47;19109:131;19235:4;19109:131;:::i;:::-;19101:139;;18828:419;;;:::o;19253:442::-;19402:4;19440:2;19429:9;19425:18;19417:26;;19453:71;19521:1;19510:9;19506:17;19497:6;19453:71;:::i;:::-;19534:72;19602:2;19591:9;19587:18;19578:6;19534:72;:::i;:::-;19616;19684:2;19673:9;19669:18;19660:6;19616:72;:::i;:::-;19253:442;;;;;;:::o;19701:180::-;19749:77;19746:1;19739:88;19846:4;19843:1;19836:15;19870:4;19867:1;19860:15;19887:233;19926:3;19949:24;19967:5;19949:24;:::i;:::-;19940:33;;19995:66;19988:5;19985:77;19982:103;;;20065:18;;:::i;:::-;19982:103;20112:1;20105:5;20101:13;20094:20;;19887:233;;;:::o;20126:137::-;20216:6;20250:5;20244:12;20234:22;;20126:137;;;:::o;20269:207::-;20391:11;20425:6;20420:3;20413:19;20465:4;20460:3;20456:14;20441:29;;20269:207;;;;:::o;20482:155::-;20572:4;20595:3;20587:11;;20625:4;20620:3;20616:14;20608:22;;20482:155;;;:::o;20643:108::-;20720:24;20738:5;20720:24;:::i;:::-;20715:3;20708:37;20643:108;;:::o;20757:::-;20834:24;20852:5;20834:24;:::i;:::-;20829:3;20822:37;20757:108;;:::o;20871:105::-;20946:23;20963:5;20946:23;:::i;:::-;20941:3;20934:36;20871:105;;:::o;21048:1019::-;21181:4;21176:3;21172:14;21268:4;21261:5;21257:16;21251:23;21287:63;21344:4;21339:3;21335:14;21321:12;21287:63;:::i;:::-;21196:164;21441:4;21434:5;21430:16;21424:23;21460:63;21517:4;21512:3;21508:14;21494:12;21460:63;:::i;:::-;21370:163;21618:4;21611:5;21607:16;21601:23;21637:63;21694:4;21689:3;21685:14;21671:12;21637:63;:::i;:::-;21543:167;21793:4;21786:5;21782:16;21776:23;21812:61;21867:4;21862:3;21858:14;21844:12;21812:61;:::i;:::-;21720:163;21970:4;21963:5;21959:16;21953:23;21989:61;22044:4;22039:3;22035:14;22021:12;21989:61;:::i;:::-;21893:167;21150:917;21048:1019;;:::o;22073:271::-;22188:10;22209:92;22297:3;22289:6;22209:92;:::i;:::-;22333:4;22328:3;22324:14;22310:28;;22073:271;;;;:::o;22350:136::-;22443:4;22475;22470:3;22466:14;22458:22;;22350:136;;;:::o;22562:916::-;22727:3;22756:77;22827:5;22756:77;:::i;:::-;22849:109;22951:6;22946:3;22849:109;:::i;:::-;22842:116;;22982:79;23055:5;22982:79;:::i;:::-;23084:7;23115:1;23100:353;23125:6;23122:1;23119:13;23100:353;;;23201:6;23195:13;23228:109;23333:3;23318:13;23228:109;:::i;:::-;23221:116;;23360:83;23436:6;23360:83;:::i;:::-;23350:93;;23160:293;23147:1;23144;23140:9;23135:14;;23100:353;;;23104:14;23469:3;23462:10;;22732:746;;;22562:916;;;;:::o;23484:465::-;23673:4;23711:2;23700:9;23696:18;23688:26;;23760:9;23754:4;23750:20;23746:1;23735:9;23731:17;23724:47;23788:154;23937:4;23928:6;23788:154;:::i;:::-;23780:162;;23484:465;;;;:::o;23955:227::-;24095:34;24091:1;24083:6;24079:14;24072:58;24164:10;24159:2;24151:6;24147:15;24140:35;23955:227;:::o;24188:366::-;24330:3;24351:67;24415:2;24410:3;24351:67;:::i;:::-;24344:74;;24427:93;24516:3;24427:93;:::i;:::-;24545:2;24540:3;24536:12;24529:19;;24188:366;;;:::o;24560:419::-;24726:4;24764:2;24753:9;24749:18;24741:26;;24813:9;24807:4;24803:20;24799:1;24788:9;24784:17;24777:47;24841:131;24967:4;24841:131;:::i;:::-;24833:139;;24560:419;;;:::o;24985:222::-;25125:34;25121:1;25113:6;25109:14;25102:58;25194:5;25189:2;25181:6;25177:15;25170:30;24985:222;:::o;25213:366::-;25355:3;25376:67;25440:2;25435:3;25376:67;:::i;:::-;25369:74;;25452:93;25541:3;25452:93;:::i;:::-;25570:2;25565:3;25561:12;25554:19;;25213:366;;;:::o;25585:419::-;25751:4;25789:2;25778:9;25774:18;25766:26;;25838:9;25832:4;25828:20;25824:1;25813:9;25809:17;25802:47;25866:131;25992:4;25866:131;:::i;:::-;25858:139;;25585:419;;;:::o;26010:235::-;26150:34;26146:1;26138:6;26134:14;26127:58;26219:18;26214:2;26206:6;26202:15;26195:43;26010:235;:::o;26251:366::-;26393:3;26414:67;26478:2;26473:3;26414:67;:::i;:::-;26407:74;;26490:93;26579:3;26490:93;:::i;:::-;26608:2;26603:3;26599:12;26592:19;;26251:366;;;:::o;26623:419::-;26789:4;26827:2;26816:9;26812:18;26804:26;;26876:9;26870:4;26866:20;26862:1;26851:9;26847:17;26840:47;26904:131;27030:4;26904:131;:::i;:::-;26896:139;;26623:419;;;:::o;27048:305::-;27088:3;27107:20;27125:1;27107:20;:::i;:::-;27102:25;;27141:20;27159:1;27141:20;:::i;:::-;27136:25;;27295:1;27227:66;27223:74;27220:1;27217:81;27214:107;;;27301:18;;:::i;:::-;27214:107;27345:1;27342;27338:9;27331:16;;27048:305;;;;:::o;27359:230::-;27499:34;27495:1;27487:6;27483:14;27476:58;27568:13;27563:2;27555:6;27551:15;27544:38;27359:230;:::o;27595:366::-;27737:3;27758:67;27822:2;27817:3;27758:67;:::i;:::-;27751:74;;27834:93;27923:3;27834:93;:::i;:::-;27952:2;27947:3;27943:12;27936:19;;27595:366;;;:::o;27967:419::-;28133:4;28171:2;28160:9;28156:18;28148:26;;28220:9;28214:4;28210:20;28206:1;28195:9;28191:17;28184:47;28248:131;28374:4;28248:131;:::i;:::-;28240:139;;27967:419;;;:::o;28392:320::-;28507:4;28545:2;28534:9;28530:18;28522:26;;28558:71;28626:1;28615:9;28611:17;28602:6;28558:71;:::i;:::-;28639:66;28701:2;28690:9;28686:18;28677:6;28639:66;:::i;:::-;28392:320;;;;;:::o;28718:225::-;28858:34;28854:1;28846:6;28842:14;28835:58;28927:8;28922:2;28914:6;28910:15;28903:33;28718:225;:::o;28949:366::-;29091:3;29112:67;29176:2;29171:3;29112:67;:::i;:::-;29105:74;;29188:93;29277:3;29188:93;:::i;:::-;29306:2;29301:3;29297:12;29290:19;;28949:366;;;:::o;29321:419::-;29487:4;29525:2;29514:9;29510:18;29502:26;;29574:9;29568:4;29564:20;29560:1;29549:9;29545:17;29538:47;29602:131;29728:4;29602:131;:::i;:::-;29594:139;;29321:419;;;:::o;29746:182::-;29886:34;29882:1;29874:6;29870:14;29863:58;29746:182;:::o;29934:366::-;30076:3;30097:67;30161:2;30156:3;30097:67;:::i;:::-;30090:74;;30173:93;30262:3;30173:93;:::i;:::-;30291:2;30286:3;30282:12;30275:19;;29934:366;;;:::o;30306:419::-;30472:4;30510:2;30499:9;30495:18;30487:26;;30559:9;30553:4;30549:20;30545:1;30534:9;30530:17;30523:47;30587:131;30713:4;30587:131;:::i;:::-;30579:139;;30306:419;;;:::o;30731:181::-;30871:33;30867:1;30859:6;30855:14;30848:57;30731:181;:::o;30918:366::-;31060:3;31081:67;31145:2;31140:3;31081:67;:::i;:::-;31074:74;;31157:93;31246:3;31157:93;:::i;:::-;31275:2;31270:3;31266:12;31259:19;;30918:366;;;:::o;31290:419::-;31456:4;31494:2;31483:9;31479:18;31471:26;;31543:9;31537:4;31533:20;31529:1;31518:9;31514:17;31507:47;31571:131;31697:4;31571:131;:::i;:::-;31563:139;;31290:419;;;:::o;31715:166::-;31855:18;31851:1;31843:6;31839:14;31832:42;31715:166;:::o;31887:366::-;32029:3;32050:67;32114:2;32109:3;32050:67;:::i;:::-;32043:74;;32126:93;32215:3;32126:93;:::i;:::-;32244:2;32239:3;32235:12;32228:19;;31887:366;;;:::o;32259:419::-;32425:4;32463:2;32452:9;32448:18;32440:26;;32512:9;32506:4;32502:20;32498:1;32487:9;32483:17;32476:47;32540:131;32666:4;32540:131;:::i;:::-;32532:139;;32259:419;;;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\n\ncontract ERC721Staking is Ownable, ReentrancyGuard, Pausable, ERC721Holder {\n uint256 public cooldownSeconds = 1 days;\n\n struct Staker {\n address user;\n address nft;\n uint256 tokenId;\n uint64 start;\n uint64 stakeTime;\n }\n // nft address => token id => Staker\n mapping(address => mapping(uint256 => Staker)) public stakingMap;\n // User-selectable stake NFT\n mapping(address => bool) public erc721Supported;\n // User-selectable stake time, in seconds\n mapping(uint64 => bool) public periods;\n // event of stake\n event Staked(address indexed user, Staker[] infos);\n // event of redeem\n event Redeem(address indexed user, Staker[] infos);\n // event of update ERC721 support\n event EditNFTSuppout(address nftToken, bool status);\n // event of update periods\n event EditPeriods(uint64 period, bool status);\n // event of update cooldownSeconds\n event EditCooldownSeconds(uint256 oldVal, uint256 newVal);\n\n function stake(\n address[] calldata nfts,\n uint256[] calldata tokenIds,\n uint64[] calldata staketimes\n ) external nonReentrant whenNotPaused {\n require(\n nfts.length == tokenIds.length,\n \"ERC721Staking: nfts length != tokenIds length\"\n );\n require(\n nfts.length == staketimes.length,\n \"ERC721Staking: nfts length != staketimes length\"\n );\n\n address account = msg.sender;\n uint64[] memory _beginTimes = new uint64[](nfts.length);\n uint64[] memory _stakeTimes = new uint64[](nfts.length);\n Staker[] memory _infos = new Staker[](nfts.length);\n for (uint256 i = 0; i < nfts.length; i++) {\n require(\n erc721Supported[nfts[i]] == true,\n \"ERC721Staking: nft is not supported\"\n );\n\n require(\n periods[staketimes[i]] == true,\n \"ERC721Staking: staketime is not supported\"\n );\n\n IERC721(nfts[i]).safeTransferFrom(account, address(this), tokenIds[i]);\n _beginTimes[i] = uint64(block.timestamp);\n _stakeTimes[i] = staketimes[i];\n stakingMap[nfts[i]][tokenIds[i]] = Staker(\n account,\n nfts[i],\n tokenIds[i],\n _beginTimes[i],\n _stakeTimes[i]\n );\n _infos[i] = stakingMap[nfts[i]][tokenIds[i]];\n }\n emit Staked(account, _infos);\n }\n\n function redeem(\n address[] calldata nfts,\n uint256[] calldata tokenIds\n ) external nonReentrant {\n require(\n nfts.length == tokenIds.length,\n \"ERC721Staking: nfts length != ids length\"\n );\n address account = msg.sender;\n // check if ids are valid\n Staker[] memory _infos = new Staker[](tokenIds.length);\n for (uint256 i = 0; i < tokenIds.length; i++) {\n require(\n stakingMap[nfts[i]][tokenIds[i]].user != address(0),\n \"ERC721Staking: tokenId is not valid\"\n );\n require(\n stakingMap[nfts[i]][tokenIds[i]].user == account,\n \"ERC721Staking: user is not the owner of this nft\"\n );\n require(\n stakingMap[nfts[i]][tokenIds[i]].start + cooldownSeconds <=\n block.timestamp,\n \"ERC721Staking: cooldown time is not reached\"\n );\n\n IERC721(nfts[i]).safeTransferFrom(address(this), account, tokenIds[i]);\n _infos[i] = stakingMap[nfts[i]][tokenIds[i]];\n delete stakingMap[nfts[i]][tokenIds[i]];\n }\n\n emit Redeem(account, _infos);\n }\n\n /**\n * @dev update ERC721 support\n */\n function updateERC721Support(\n address nftToken,\n bool status\n ) external onlyOwner {\n erc721Supported[nftToken] = status;\n emit EditNFTSuppout(nftToken, status);\n }\n\n function updatePeriods(uint64 period, bool status) external onlyOwner {\n periods[period] = status;\n emit EditPeriods(period, status);\n }\n\n function updateCooldownSeconds(uint256 _cooldownSeconds) external onlyOwner {\n uint256 oldVal = cooldownSeconds;\n cooldownSeconds = _cooldownSeconds;\n emit EditCooldownSeconds(oldVal, _cooldownSeconds);\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/stake/ERC721Staking.sol", "ast": { "absolutePath": "project:/contracts/stake/ERC721Staking.sol", @@ -15025,7 +14843,7 @@ 446 ], "ERC721Staking": [ - 970 + 966 ], "IERC165": [ 480 @@ -15046,7 +14864,7 @@ 285 ] }, - "id": 971, + "id": 967, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -15066,7 +14884,7 @@ "id": 483, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 971, + "scope": 967, "sourceUnit": 402, "src": "57:58:8", "symbolAliases": [], @@ -15078,7 +14896,7 @@ "id": 484, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 971, + "scope": 967, "sourceUnit": 447, "src": "116:69:8", "symbolAliases": [], @@ -15090,7 +14908,7 @@ "id": 485, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 971, + "scope": 967, "sourceUnit": 113, "src": "186:52:8", "symbolAliases": [], @@ -15102,7 +14920,7 @@ "id": 486, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 971, + "scope": 967, "sourceUnit": 286, "src": "239:62:8", "symbolAliases": [], @@ -15114,7 +14932,7 @@ "id": 487, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 971, + "scope": 967, "sourceUnit": 221, "src": "302:55:8", "symbolAliases": [], @@ -15176,9 +14994,9 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 970, + "id": 966, "linearizedBaseContracts": [ - 970, + 966, 446, 419, 220, @@ -15198,7 +15016,7 @@ "name": "cooldownSeconds", "nameLocation": "453:15:8", "nodeType": "VariableDeclaration", - "scope": 970, + "scope": 966, "src": "438:39:8", "stateVariable": true, "storageLocation": "default", @@ -15380,7 +15198,7 @@ "name": "Staker", "nameLocation": "489:6:8", "nodeType": "StructDefinition", - "scope": 970, + "scope": 966, "src": "482:115:8", "visibility": "public" }, @@ -15392,7 +15210,7 @@ "name": "stakingMap", "nameLocation": "693:10:8", "nodeType": "VariableDeclaration", - "scope": 970, + "scope": 966, "src": "639:64:8", "stateVariable": true, "storageLocation": "default", @@ -15465,7 +15283,7 @@ "name": "erc721Supported", "nameLocation": "770:15:8", "nodeType": "VariableDeclaration", - "scope": 970, + "scope": 966, "src": "738:47:8", "stateVariable": true, "storageLocation": "default", @@ -15512,7 +15330,7 @@ "name": "periods", "nameLocation": "864:7:8", "nodeType": "VariableDeclaration", - "scope": 970, + "scope": 966, "src": "833:38:8", "stateVariable": true, "storageLocation": "default", @@ -15943,9 +15761,9 @@ }, { "body": { - "id": 752, + "id": 748, "nodeType": "Block", - "src": "1443:1157:8", + "src": "1443:1140:8", "statements": [ { "expression": { @@ -16227,7 +16045,7 @@ "name": "account", "nameLocation": "1686:7:8", "nodeType": "VariableDeclaration", - "scope": 752, + "scope": 748, "src": "1678:15:8", "stateVariable": false, "storageLocation": "default", @@ -16291,7 +16109,7 @@ "name": "_beginTimes", "nameLocation": "1728:11:8", "nodeType": "VariableDeclaration", - "scope": 752, + "scope": 748, "src": "1712:27:8", "stateVariable": false, "storageLocation": "memory", @@ -16419,7 +16237,7 @@ "name": "_stakeTimes", "nameLocation": "1789:11:8", "nodeType": "VariableDeclaration", - "scope": 752, + "scope": 748, "src": "1773:27:8", "stateVariable": false, "storageLocation": "memory", @@ -16547,7 +16365,7 @@ "name": "_infos", "nameLocation": "1850:6:8", "nodeType": "VariableDeclaration", - "scope": 752, + "scope": 748, "src": "1834:22:8", "stateVariable": false, "storageLocation": "memory", @@ -16679,9 +16497,9 @@ }, { "body": { - "id": 745, + "id": 741, "nodeType": "Block", - "src": "1932:630:8", + "src": "1932:613:8", "statements": [ { "expression": { @@ -17028,7 +16846,7 @@ "referencedDeclaration": 4294967268, "src": "2221:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeIdentifier": "t_contract$_ERC721Staking_$966", "typeString": "contract ERC721Staking" } } @@ -17036,7 +16854,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeIdentifier": "t_contract$_ERC721Staking_$966", "typeString": "contract ERC721Staking" } ], @@ -17361,7 +17179,7 @@ }, { "expression": { - "id": 703, + "id": 699, "isConstant": false, "isLValue": false, "isPure": false, @@ -17406,110 +17224,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" + "baseExpression": { + "id": 696, + "name": "staketimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "2313:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_calldata_ptr", + "typeString": "uint64[] calldata" + } + }, + "id": 698, + "indexExpression": { + "id": 697, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2324:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 696, - "name": "_beginTimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "2313:11:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", - "typeString": "uint64[] memory" - } - }, - "id": 698, - "indexExpression": { - "id": 697, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "2325:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2313:14:8", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "baseExpression": { - "id": 699, - "name": "staketimes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "2330:10:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint64_$dyn_calldata_ptr", - "typeString": "uint64[] calldata" - } - }, - "id": 701, - "indexExpression": { - "id": 700, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "2341:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2330:13:8", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2313:30:8", + "nodeType": "IndexAccess", + "src": "2313:13:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "2296:47:8", + "src": "2296:30:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 704, + "id": 700, "nodeType": "ExpressionStatement", - "src": "2296:47:8" + "src": "2296:30:8" }, { "expression": { - "id": 729, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -17517,39 +17280,39 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 705, + "id": 701, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "2351:10:8", + "src": "2334:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 712, + "id": 708, "indexExpression": { "baseExpression": { - "id": 706, + "id": 702, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 561, - "src": "2362:4:8", + "src": "2345:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 708, + "id": 704, "indexExpression": { - "id": 707, + "id": 703, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2367:1:8", + "src": "2350:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17560,7 +17323,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2362:7:8", + "src": "2345:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17571,34 +17334,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2351:19:8", + "src": "2334:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 713, + "id": 709, "indexExpression": { "baseExpression": { - "id": 709, + "id": 705, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 564, - "src": "2371:8:8", + "src": "2354:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 711, + "id": 707, "indexExpression": { - "id": 710, + "id": 706, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2380:1:8", + "src": "2363:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17609,7 +17372,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2371:11:8", + "src": "2354:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17620,7 +17383,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2351:32:8", + "src": "2334:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" @@ -17631,11 +17394,48 @@ "rightHandSide": { "arguments": [ { - "id": 715, + "id": 711, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 593, + "src": "2385:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 712, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2402:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 714, + "indexExpression": { + "id": 713, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2407:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", "src": "2402:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17644,62 +17444,25 @@ }, { "baseExpression": { - "id": 716, - "name": "nfts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "2419:4:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 718, - "indexExpression": { - "id": 717, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "2424:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2419:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 719, + "id": 715, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 564, - "src": "2436:8:8", + "src": "2419:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 721, + "id": 717, "indexExpression": { - "id": 720, + "id": 716, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2445:1:8", + "src": "2428:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17710,7 +17473,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2436:11:8", + "src": "2419:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17718,25 +17481,25 @@ }, { "baseExpression": { - "id": 722, + "id": 718, "name": "_beginTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 601, - "src": "2457:11:8", + "src": "2440:11:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[] memory" } }, - "id": 724, + "id": 720, "indexExpression": { - "id": 723, + "id": 719, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2469:1:8", + "src": "2452:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17747,7 +17510,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2457:14:8", + "src": "2440:14:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -17755,25 +17518,25 @@ }, { "baseExpression": { - "id": 725, + "id": 721, "name": "_stakeTimes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 613, - "src": "2481:11:8", + "src": "2464:11:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[] memory" } }, - "id": 727, + "id": 723, "indexExpression": { - "id": 726, + "id": 722, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2493:1:8", + "src": "2476:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17784,7 +17547,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2481:14:8", + "src": "2464:14:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -17814,18 +17577,18 @@ "typeString": "uint64" } ], - "id": 714, + "id": 710, "name": "Staker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 509, - "src": "2386:6:8", + "src": "2369:6:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Staker_$509_storage_ptr_$", "typeString": "type(struct ERC721Staking.Staker storage pointer)" } }, - "id": 728, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, @@ -17833,51 +17596,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2386:117:8", + "src": "2369:117:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", "typeString": "struct ERC721Staking.Staker memory" } }, - "src": "2351:152:8", + "src": "2334:152:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "id": 730, + "id": 726, "nodeType": "ExpressionStatement", - "src": "2351:152:8" + "src": "2334:152:8" }, { "expression": { - "id": 743, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 731, + "id": 727, "name": "_infos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 625, - "src": "2511:6:8", + "src": "2494:6:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "typeString": "struct ERC721Staking.Staker memory[] memory" } }, - "id": 733, + "id": 729, "indexExpression": { - "id": 732, + "id": 728, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2518:1:8", + "src": "2501:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17888,7 +17651,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2511:9:8", + "src": "2494:9:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", "typeString": "struct ERC721Staking.Staker memory" @@ -17899,39 +17662,39 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 734, + "id": 730, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "2523:10:8", + "src": "2506:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 738, + "id": 734, "indexExpression": { "baseExpression": { - "id": 735, + "id": 731, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 561, - "src": "2534:4:8", + "src": "2517:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 737, + "id": 733, "indexExpression": { - "id": 736, + "id": 732, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2539:1:8", + "src": "2522:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17942,7 +17705,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2534:7:8", + "src": "2517:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17953,34 +17716,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2523:19:8", + "src": "2506:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 742, + "id": 738, "indexExpression": { "baseExpression": { - "id": 739, + "id": 735, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 564, - "src": "2543:8:8", + "src": "2526:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 741, + "id": 737, "indexExpression": { - "id": 740, + "id": 736, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "2552:1:8", + "src": "2535:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17991,7 +17754,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2543:11:8", + "src": "2526:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18002,21 +17765,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2523:32:8", + "src": "2506:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "src": "2511:44:8", + "src": "2494:44:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", "typeString": "struct ERC721Staking.Staker memory" } }, - "id": 744, + "id": 740, "nodeType": "ExpressionStatement", - "src": "2511:44:8" + "src": "2494:44:8" } ] }, @@ -18076,7 +17839,7 @@ "typeString": "bool" } }, - "id": 746, + "id": 742, "initializationExpression": { "assignments": [ 635 @@ -18089,7 +17852,7 @@ "name": "i", "nameLocation": "1903:1:8", "nodeType": "VariableDeclaration", - "scope": 746, + "scope": 742, "src": "1895:9:8", "stateVariable": false, "storageLocation": "default", @@ -18163,30 +17926,30 @@ "src": "1927:3:8" }, "nodeType": "ForStatement", - "src": "1890:672:8" + "src": "1890:655:8" }, { "eventCall": { "arguments": [ { - "id": 748, + "id": 744, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 593, - "src": "2579:7:8", + "src": "2562:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 749, + "id": 745, "name": "_infos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 625, - "src": "2588:6:8", + "src": "2571:6:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "typeString": "struct ERC721Staking.Staker memory[] memory" @@ -18204,18 +17967,18 @@ "typeString": "struct ERC721Staking.Staker memory[] memory" } ], - "id": 747, + "id": 743, "name": "Staked", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 532, - "src": "2572:6:8", + "src": "2555:6:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (address,struct ERC721Staking.Staker memory[] memory)" } }, - "id": 750, + "id": 746, "isConstant": false, "isLValue": false, "isPure": false, @@ -18223,21 +17986,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2572:23:8", + "src": "2555:23:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 751, + "id": 747, "nodeType": "EmitStatement", - "src": "2567:28:8" + "src": "2550:28:8" } ] }, "functionSelector": "44b780f8", - "id": 753, + "id": 749, "implemented": true, "kind": "function", "modifiers": [ @@ -18282,7 +18045,7 @@ "name": "nfts", "nameLocation": "1331:4:8", "nodeType": "VariableDeclaration", - "scope": 753, + "scope": 749, "src": "1312:23:8", "stateVariable": false, "storageLocation": "calldata", @@ -18319,7 +18082,7 @@ "name": "tokenIds", "nameLocation": "1360:8:8", "nodeType": "VariableDeclaration", - "scope": 753, + "scope": 749, "src": "1341:27:8", "stateVariable": false, "storageLocation": "calldata", @@ -18355,7 +18118,7 @@ "name": "staketimes", "nameLocation": "1392:10:8", "nodeType": "VariableDeclaration", - "scope": 753, + "scope": 749, "src": "1374:28:8", "stateVariable": false, "storageLocation": "calldata", @@ -18393,17 +18156,17 @@ "parameters": [], "src": "1443:0:8" }, - "scope": 970, - "src": "1292:1308:8", + "scope": 966, + "src": "1292:1291:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 904, + "id": 900, "nodeType": "Block", - "src": "2708:952:8", + "src": "2691:952:8", "statements": [ { "expression": { @@ -18413,32 +18176,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 769, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 765, + "id": 761, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "2729:4:8", + "referencedDeclaration": 752, + "src": "2712:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 766, + "id": 762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2729:11:8", + "src": "2712:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18448,31 +18211,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 767, + "id": 763, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "2744:8:8", + "referencedDeclaration": 755, + "src": "2727:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 768, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2744:15:8", + "src": "2727:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2729:30:8", + "src": "2712:30:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18480,14 +18243,14 @@ }, { "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d20696473206c656e677468", - "id": 770, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2767:42:8", + "src": "2750:42:8", "typeDescriptions": { "typeIdentifier": "t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", "typeString": "literal_string \"ERC721Staking: nfts length != ids length\"" @@ -18506,7 +18269,7 @@ "typeString": "literal_string \"ERC721Staking: nfts length != ids length\"" } ], - "id": 764, + "id": 760, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18514,13 +18277,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2714:7:8", + "src": "2697:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 771, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -18528,31 +18291,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2714:101:8", + "src": "2697:101:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 772, + "id": 768, "nodeType": "ExpressionStatement", - "src": "2714:101:8" + "src": "2697:101:8" }, { "assignments": [ - 774 + 770 ], "declarations": [ { "constant": false, - "id": 774, + "id": 770, "mutability": "mutable", "name": "account", - "nameLocation": "2829:7:8", + "nameLocation": "2812:7:8", "nodeType": "VariableDeclaration", - "scope": 904, - "src": "2821:15:8", + "scope": 900, + "src": "2804:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18560,10 +18323,10 @@ "typeString": "address" }, "typeName": { - "id": 773, + "id": 769, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2821:7:8", + "src": "2804:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18573,50 +18336,50 @@ "visibility": "internal" } ], - "id": 777, + "id": 773, "initialValue": { "expression": { - "id": 775, + "id": 771, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2839:3:8", + "src": "2822:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 776, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2839:10:8", + "src": "2822:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2821:28:8" + "src": "2804:28:8" }, { "assignments": [ - 782 + 778 ], "declarations": [ { "constant": false, - "id": 782, + "id": 778, "mutability": "mutable", "name": "_infos", - "nameLocation": "2901:6:8", + "nameLocation": "2884:6:8", "nodeType": "VariableDeclaration", - "scope": 904, - "src": "2885:22:8", + "scope": 900, + "src": "2868:22:8", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18625,25 +18388,25 @@ }, "typeName": { "baseType": { - "id": 780, + "id": 776, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 779, + "id": 775, "name": "Staker", "nodeType": "IdentifierPath", "referencedDeclaration": 509, - "src": "2885:6:8" + "src": "2868:6:8" }, "referencedDeclaration": 509, - "src": "2885:6:8", + "src": "2868:6:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", "typeString": "struct ERC721Staking.Staker" } }, - "id": 781, + "id": 777, "nodeType": "ArrayTypeName", - "src": "2885:8:8", + "src": "2868:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", "typeString": "struct ERC721Staking.Staker[]" @@ -18652,30 +18415,30 @@ "visibility": "internal" } ], - "id": 790, + "id": 786, "initialValue": { "arguments": [ { "expression": { - "id": 787, + "id": 783, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "2923:8:8", + "referencedDeclaration": 755, + "src": "2906:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 788, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2923:15:8", + "src": "2906:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18689,45 +18452,45 @@ "typeString": "uint256" } ], - "id": 786, + "id": 782, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2910:12:8", + "src": "2893:12:8", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct ERC721Staking.Staker memory[] memory)" }, "typeName": { "baseType": { - "id": 784, + "id": 780, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 783, + "id": 779, "name": "Staker", "nodeType": "IdentifierPath", "referencedDeclaration": 509, - "src": "2914:6:8" + "src": "2897:6:8" }, "referencedDeclaration": 509, - "src": "2914:6:8", + "src": "2897:6:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", "typeString": "struct ERC721Staking.Staker" } }, - "id": 785, + "id": 781, "nodeType": "ArrayTypeName", - "src": "2914:8:8", + "src": "2897:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", "typeString": "struct ERC721Staking.Staker[]" } } }, - "id": 789, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -18735,7 +18498,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2910:29:8", + "src": "2893:29:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", @@ -18743,13 +18506,13 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2885:54:8" + "src": "2868:54:8" }, { "body": { - "id": 897, + "id": 893, "nodeType": "Block", - "src": "2991:630:8", + "src": "2974:630:8", "statements": [ { "expression": { @@ -18759,7 +18522,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 817, + "id": 813, "isConstant": false, "isLValue": false, "isPure": false, @@ -18768,39 +18531,39 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 803, + "id": 799, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "3016:10:8", + "src": "2999:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 807, + "id": 803, "indexExpression": { "baseExpression": { - "id": 804, + "id": 800, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3027:4:8", + "referencedDeclaration": 752, + "src": "3010:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 806, + "id": 802, "indexExpression": { - "id": 805, + "id": 801, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3032:1:8", + "referencedDeclaration": 788, + "src": "3015:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18811,7 +18574,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3027:7:8", + "src": "3010:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18822,34 +18585,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3016:19:8", + "src": "2999:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 811, + "id": 807, "indexExpression": { "baseExpression": { - "id": 808, + "id": 804, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3036:8:8", + "referencedDeclaration": 755, + "src": "3019:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 810, + "id": 806, "indexExpression": { - "id": 809, + "id": 805, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3045:1:8", + "referencedDeclaration": 788, + "src": "3028:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18860,7 +18623,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3036:11:8", + "src": "3019:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18871,13 +18634,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3016:32:8", + "src": "2999:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "id": 812, + "id": 808, "isConstant": false, "isLValue": true, "isPure": false, @@ -18885,7 +18648,7 @@ "memberName": "user", "nodeType": "MemberAccess", "referencedDeclaration": 500, - "src": "3016:37:8", + "src": "2999:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18897,14 +18660,14 @@ "arguments": [ { "hexValue": "30", - "id": 815, + "id": 811, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3065:1:8", + "src": "3048:1:8", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18919,26 +18682,26 @@ "typeString": "int_const 0" } ], - "id": 814, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3057:7:8", + "src": "3040:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 813, + "id": 809, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3057:7:8", + "src": "3040:7:8", "typeDescriptions": {} } }, - "id": 816, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, @@ -18946,14 +18709,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3057:10:8", + "src": "3040:10:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3016:51:8", + "src": "2999:51:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18961,14 +18724,14 @@ }, { "hexValue": "4552433732315374616b696e673a20746f6b656e4964206973206e6f742076616c6964", - "id": 818, + "id": 814, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3077:37:8", + "src": "3060:37:8", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", "typeString": "literal_string \"ERC721Staking: tokenId is not valid\"" @@ -18987,7 +18750,7 @@ "typeString": "literal_string \"ERC721Staking: tokenId is not valid\"" } ], - "id": 802, + "id": 798, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18995,13 +18758,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2999:7:8", + "src": "2982:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 819, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, @@ -19009,16 +18772,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2999:123:8", + "src": "2982:123:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 820, + "id": 816, "nodeType": "ExpressionStatement", - "src": "2999:123:8" + "src": "2982:123:8" }, { "expression": { @@ -19028,7 +18791,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 833, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -19037,39 +18800,39 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 822, + "id": 818, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "3147:10:8", + "src": "3130:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 826, + "id": 822, "indexExpression": { "baseExpression": { - "id": 823, + "id": 819, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3158:4:8", + "referencedDeclaration": 752, + "src": "3141:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 825, + "id": 821, "indexExpression": { - "id": 824, + "id": 820, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3163:1:8", + "referencedDeclaration": 788, + "src": "3146:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19080,7 +18843,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3158:7:8", + "src": "3141:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19091,34 +18854,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3147:19:8", + "src": "3130:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 830, + "id": 826, "indexExpression": { "baseExpression": { - "id": 827, + "id": 823, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3167:8:8", + "referencedDeclaration": 755, + "src": "3150:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 829, + "id": 825, "indexExpression": { - "id": 828, + "id": 824, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3176:1:8", + "referencedDeclaration": 788, + "src": "3159:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19129,7 +18892,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3167:11:8", + "src": "3150:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19140,13 +18903,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3147:32:8", + "src": "3130:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "id": 831, + "id": 827, "isConstant": false, "isLValue": true, "isPure": false, @@ -19154,7 +18917,7 @@ "memberName": "user", "nodeType": "MemberAccess", "referencedDeclaration": 500, - "src": "3147:37:8", + "src": "3130:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19163,18 +18926,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 832, + "id": 828, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 774, - "src": "3188:7:8", + "referencedDeclaration": 770, + "src": "3171:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3147:48:8", + "src": "3130:48:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19182,14 +18945,14 @@ }, { "hexValue": "4552433732315374616b696e673a2075736572206973206e6f7420746865206f776e6572206f662074686973206e6674", - "id": 834, + "id": 830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3205:50:8", + "src": "3188:50:8", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", "typeString": "literal_string \"ERC721Staking: user is not the owner of this nft\"" @@ -19208,7 +18971,7 @@ "typeString": "literal_string \"ERC721Staking: user is not the owner of this nft\"" } ], - "id": 821, + "id": 817, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19216,13 +18979,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3130:7:8", + "src": "3113:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 835, + "id": 831, "isConstant": false, "isLValue": false, "isPure": false, @@ -19230,16 +18993,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3130:133:8", + "src": "3113:133:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 836, + "id": 832, "nodeType": "ExpressionStatement", - "src": "3130:133:8" + "src": "3113:133:8" }, { "expression": { @@ -19249,7 +19012,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 852, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -19259,7 +19022,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 849, + "id": 845, "isConstant": false, "isLValue": false, "isPure": false, @@ -19268,39 +19031,39 @@ "expression": { "baseExpression": { "baseExpression": { - "id": 838, + "id": 834, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "3288:10:8", + "src": "3271:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 842, + "id": 838, "indexExpression": { "baseExpression": { - "id": 839, + "id": 835, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3299:4:8", + "referencedDeclaration": 752, + "src": "3282:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 841, + "id": 837, "indexExpression": { - "id": 840, + "id": 836, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3304:1:8", + "referencedDeclaration": 788, + "src": "3287:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19311,7 +19074,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3299:7:8", + "src": "3282:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19322,34 +19085,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3288:19:8", + "src": "3271:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 846, + "id": 842, "indexExpression": { "baseExpression": { - "id": 843, + "id": 839, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3308:8:8", + "referencedDeclaration": 755, + "src": "3291:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 845, + "id": 841, "indexExpression": { - "id": 844, + "id": 840, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3317:1:8", + "referencedDeclaration": 788, + "src": "3300:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19360,7 +19123,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3308:11:8", + "src": "3291:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19371,13 +19134,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3288:32:8", + "src": "3271:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "id": 847, + "id": 843, "isConstant": false, "isLValue": true, "isPure": false, @@ -19385,7 +19148,7 @@ "memberName": "start", "nodeType": "MemberAccess", "referencedDeclaration": 506, - "src": "3288:38:8", + "src": "3271:38:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -19394,18 +19157,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 848, + "id": 844, "name": "cooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 498, - "src": "3329:15:8", + "src": "3312:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3288:56:8", + "src": "3271:56:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19415,31 +19178,31 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 850, + "id": 846, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "3358:5:8", + "src": "3341:5:8", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 851, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3358:15:8", + "src": "3341:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3288:85:8", + "src": "3271:85:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19447,14 +19210,14 @@ }, { "hexValue": "4552433732315374616b696e673a20636f6f6c646f776e2074696d65206973206e6f742072656163686564", - "id": 853, + "id": 849, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3383:45:8", + "src": "3366:45:8", "typeDescriptions": { "typeIdentifier": "t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", "typeString": "literal_string \"ERC721Staking: cooldown time is not reached\"" @@ -19473,7 +19236,7 @@ "typeString": "literal_string \"ERC721Staking: cooldown time is not reached\"" } ], - "id": 837, + "id": 833, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19481,13 +19244,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3271:7:8", + "src": "3254:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 854, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, @@ -19495,16 +19258,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3271:165:8", + "src": "3254:165:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 855, + "id": 851, "nodeType": "ExpressionStatement", - "src": "3271:165:8" + "src": "3254:165:8" }, { "expression": { @@ -19512,14 +19275,14 @@ { "arguments": [ { - "id": 864, + "id": 860, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3487:4:8", + "src": "3470:4:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeIdentifier": "t_contract$_ERC721Staking_$966", "typeString": "contract ERC721Staking" } } @@ -19527,30 +19290,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeIdentifier": "t_contract$_ERC721Staking_$966", "typeString": "contract ERC721Staking" } ], - "id": 863, + "id": 859, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3479:7:8", + "src": "3462:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 862, + "id": 858, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3479:7:8", + "src": "3462:7:8", "typeDescriptions": {} } }, - "id": 865, + "id": 861, "isConstant": false, "isLValue": false, "isPure": false, @@ -19558,7 +19321,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3479:13:8", + "src": "3462:13:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19566,12 +19329,12 @@ } }, { - "id": 866, + "id": 862, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 774, - "src": "3494:7:8", + "referencedDeclaration": 770, + "src": "3477:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19579,25 +19342,25 @@ }, { "baseExpression": { - "id": 867, + "id": 863, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3503:8:8", + "referencedDeclaration": 755, + "src": "3486:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 869, + "id": 865, "indexExpression": { - "id": 868, + "id": 864, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3512:1:8", + "referencedDeclaration": 788, + "src": "3495:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19608,7 +19371,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3503:11:8", + "src": "3486:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19634,25 +19397,25 @@ "arguments": [ { "baseExpression": { - "id": 857, + "id": 853, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3453:4:8", + "referencedDeclaration": 752, + "src": "3436:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 859, + "id": 855, "indexExpression": { - "id": 858, + "id": 854, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3458:1:8", + "referencedDeclaration": 788, + "src": "3441:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19663,7 +19426,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3453:7:8", + "src": "3436:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19677,18 +19440,18 @@ "typeString": "address" } ], - "id": 856, + "id": 852, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 401, - "src": "3445:7:8", + "src": "3428:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721_$401_$", "typeString": "type(contract IERC721)" } }, - "id": 860, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, @@ -19696,14 +19459,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3445:16:8", + "src": "3428:16:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC721_$401", "typeString": "contract IERC721" } }, - "id": 861, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -19711,13 +19474,13 @@ "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 356, - "src": "3445:33:8", + "src": "3428:33:8", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256) external" } }, - "id": 870, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -19725,45 +19488,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3445:70:8", + "src": "3428:70:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 871, + "id": 867, "nodeType": "ExpressionStatement", - "src": "3445:70:8" + "src": "3428:70:8" }, { "expression": { - "id": 884, + "id": 880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 872, + "id": 868, "name": "_infos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "3523:6:8", + "referencedDeclaration": 778, + "src": "3506:6:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "typeString": "struct ERC721Staking.Staker memory[] memory" } }, - "id": 874, + "id": 870, "indexExpression": { - "id": 873, + "id": 869, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3530:1:8", + "referencedDeclaration": 788, + "src": "3513:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19774,7 +19537,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3523:9:8", + "src": "3506:9:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", "typeString": "struct ERC721Staking.Staker memory" @@ -19785,39 +19548,39 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 875, + "id": 871, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "3535:10:8", + "src": "3518:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 879, + "id": 875, "indexExpression": { "baseExpression": { - "id": 876, + "id": 872, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3546:4:8", + "referencedDeclaration": 752, + "src": "3529:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 878, + "id": 874, "indexExpression": { - "id": 877, + "id": 873, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3551:1:8", + "referencedDeclaration": 788, + "src": "3534:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19828,7 +19591,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3546:7:8", + "src": "3529:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19839,34 +19602,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3535:19:8", + "src": "3518:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 883, + "id": 879, "indexExpression": { "baseExpression": { - "id": 880, + "id": 876, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3555:8:8", + "referencedDeclaration": 755, + "src": "3538:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 882, + "id": 878, "indexExpression": { - "id": 881, + "id": 877, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3564:1:8", + "referencedDeclaration": 788, + "src": "3547:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19877,7 +19640,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3555:11:8", + "src": "3538:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19888,25 +19651,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3535:32:8", + "src": "3518:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" } }, - "src": "3523:44:8", + "src": "3506:44:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", "typeString": "struct ERC721Staking.Staker memory" } }, - "id": 885, + "id": 881, "nodeType": "ExpressionStatement", - "src": "3523:44:8" + "src": "3506:44:8" }, { "expression": { - "id": 895, + "id": 891, "isConstant": false, "isLValue": false, "isPure": false, @@ -19914,43 +19677,43 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "3575:39:8", + "src": "3558:39:8", "subExpression": { "baseExpression": { "baseExpression": { - "id": 886, + "id": 882, "name": "stakingMap", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 516, - "src": "3582:10:8", + "src": "3565:10:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker storage ref))" } }, - "id": 890, + "id": 886, "indexExpression": { "baseExpression": { - "id": 887, + "id": 883, "name": "nfts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "3593:4:8", + "referencedDeclaration": 752, + "src": "3576:4:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 889, + "id": 885, "indexExpression": { - "id": 888, + "id": 884, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3598:1:8", + "referencedDeclaration": 788, + "src": "3581:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19961,7 +19724,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3593:7:8", + "src": "3576:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19972,34 +19735,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3582:19:8", + "src": "3565:19:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" } }, - "id": 894, + "id": 890, "indexExpression": { "baseExpression": { - "id": 891, + "id": 887, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "3602:8:8", + "referencedDeclaration": 755, + "src": "3585:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 893, + "id": 889, "indexExpression": { - "id": 892, + "id": 888, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "3611:1:8", + "referencedDeclaration": 788, + "src": "3594:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20010,7 +19773,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3602:11:8", + "src": "3585:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20021,7 +19784,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3582:32:8", + "src": "3565:32:8", "typeDescriptions": { "typeIdentifier": "t_struct$_Staker_$509_storage", "typeString": "struct ERC721Staking.Staker storage ref" @@ -20032,9 +19795,9 @@ "typeString": "tuple()" } }, - "id": 896, + "id": 892, "nodeType": "ExpressionStatement", - "src": "3575:39:8" + "src": "3558:39:8" } ] }, @@ -20043,18 +19806,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 798, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 795, + "id": 791, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "2965:1:8", + "referencedDeclaration": 788, + "src": "2948:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20064,51 +19827,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 796, + "id": 792, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "2969:8:8", + "referencedDeclaration": 755, + "src": "2952:8:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 797, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2969:15:8", + "src": "2952:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2965:19:8", + "src": "2948:19:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 898, + "id": 894, "initializationExpression": { "assignments": [ - 792 + 788 ], "declarations": [ { "constant": false, - "id": 792, + "id": 788, "mutability": "mutable", "name": "i", - "nameLocation": "2958:1:8", + "nameLocation": "2941:1:8", "nodeType": "VariableDeclaration", - "scope": 898, - "src": "2950:9:8", + "scope": 894, + "src": "2933:9:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20116,10 +19879,10 @@ "typeString": "uint256" }, "typeName": { - "id": 791, + "id": 787, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2950:7:8", + "src": "2933:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20128,17 +19891,17 @@ "visibility": "internal" } ], - "id": 794, + "id": 790, "initialValue": { "hexValue": "30", - "id": 793, + "id": 789, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2962:1:8", + "src": "2945:1:8", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -20146,11 +19909,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2950:13:8" + "src": "2933:13:8" }, "loopExpression": { "expression": { - "id": 800, + "id": 796, "isConstant": false, "isLValue": false, "isPure": false, @@ -20158,14 +19921,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2986:3:8", + "src": "2969:3:8", "subExpression": { - "id": 799, + "id": 795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "2986:1:8", + "referencedDeclaration": 788, + "src": "2969:1:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20176,35 +19939,35 @@ "typeString": "uint256" } }, - "id": 801, + "id": 797, "nodeType": "ExpressionStatement", - "src": "2986:3:8" + "src": "2969:3:8" }, "nodeType": "ForStatement", - "src": "2945:676:8" + "src": "2928:676:8" }, { "eventCall": { "arguments": [ { - "id": 900, + "id": 896, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 774, - "src": "3639:7:8", + "referencedDeclaration": 770, + "src": "3622:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 901, + "id": 897, "name": "_infos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "3648:6:8", + "referencedDeclaration": 778, + "src": "3631:6:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", "typeString": "struct ERC721Staking.Staker memory[] memory" @@ -20222,18 +19985,18 @@ "typeString": "struct ERC721Staking.Staker memory[] memory" } ], - "id": 899, + "id": 895, "name": "Redeem", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, - "src": "3632:6:8", + "src": "3615:6:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (address,struct ERC721Staking.Staker memory[] memory)" } }, - "id": 902, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -20241,54 +20004,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3632:23:8", + "src": "3615:23:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 903, + "id": 899, "nodeType": "EmitStatement", - "src": "3627:28:8" + "src": "3610:28:8" } ] }, "functionSelector": "53d190cf", - "id": 905, + "id": 901, "implemented": true, "kind": "function", "modifiers": [ { - "id": 762, + "id": 758, "kind": "modifierInvocation", "modifierName": { - "id": 761, + "id": 757, "name": "nonReentrant", "nodeType": "IdentifierPath", "referencedDeclaration": 250, - "src": "2695:12:8" + "src": "2678:12:8" }, "nodeType": "ModifierInvocation", - "src": "2695:12:8" + "src": "2678:12:8" } ], "name": "redeem", - "nameLocation": "2613:6:8", + "nameLocation": "2596:6:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 760, + "id": 756, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 752, "mutability": "mutable", "name": "nfts", - "nameLocation": "2644:4:8", + "nameLocation": "2627:4:8", "nodeType": "VariableDeclaration", - "scope": 905, - "src": "2625:23:8", + "scope": 901, + "src": "2608:23:8", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -20297,19 +20060,19 @@ }, "typeName": { "baseType": { - "id": 754, + "id": 750, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2625:7:8", + "src": "2608:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 755, + "id": 751, "nodeType": "ArrayTypeName", - "src": "2625:9:8", + "src": "2608:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -20319,13 +20082,13 @@ }, { "constant": false, - "id": 759, + "id": 755, "mutability": "mutable", "name": "tokenIds", - "nameLocation": "2673:8:8", + "nameLocation": "2656:8:8", "nodeType": "VariableDeclaration", - "scope": 905, - "src": "2654:27:8", + "scope": 901, + "src": "2637:27:8", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -20334,18 +20097,18 @@ }, "typeName": { "baseType": { - "id": 757, + "id": 753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2654:7:8", + "src": "2637:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 758, + "id": 754, "nodeType": "ArrayTypeName", - "src": "2654:9:8", + "src": "2637:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -20354,54 +20117,54 @@ "visibility": "internal" } ], - "src": "2619:66:8" + "src": "2602:66:8" }, "returnParameters": { - "id": 763, + "id": 759, "nodeType": "ParameterList", "parameters": [], - "src": "2708:0:8" + "src": "2691:0:8" }, - "scope": 970, - "src": "2604:1056:8", + "scope": 966, + "src": "2587:1056:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 926, + "id": 922, "nodeType": "Block", - "src": "3799:88:8", + "src": "3782:88:8", "statements": [ { "expression": { - "id": 919, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 915, + "id": 911, "name": "erc721Supported", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 520, - "src": "3805:15:8", + "src": "3788:15:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 917, + "id": 913, "indexExpression": { - "id": 916, + "id": 912, "name": "nftToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "3821:8:8", + "referencedDeclaration": 904, + "src": "3804:8:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20412,7 +20175,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3805:25:8", + "src": "3788:25:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20421,49 +20184,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 918, + "id": 914, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "3833:6:8", + "referencedDeclaration": 906, + "src": "3816:6:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3805:34:8", + "src": "3788:34:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 920, + "id": 916, "nodeType": "ExpressionStatement", - "src": "3805:34:8" + "src": "3788:34:8" }, { "eventCall": { "arguments": [ { - "id": 922, + "id": 918, "name": "nftToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "3865:8:8", + "referencedDeclaration": 904, + "src": "3848:8:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 923, + "id": 919, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 910, - "src": "3875:6:8", + "referencedDeclaration": 906, + "src": "3858:6:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20481,18 +20244,18 @@ "typeString": "bool" } ], - "id": 921, + "id": 917, "name": "EditNFTSuppout", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 546, - "src": "3850:14:8", + "src": "3833:14:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,bool)" } }, - "id": 924, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -20500,60 +20263,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3850:32:8", + "src": "3833:32:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 925, + "id": 921, "nodeType": "EmitStatement", - "src": "3845:37:8" + "src": "3828:37:8" } ] }, "documentation": { - "id": 906, + "id": 902, "nodeType": "StructuredDocumentation", - "src": "3664:41:8", + "src": "3647:41:8", "text": " @dev update ERC721 support" }, "functionSelector": "595c1eff", - "id": 927, + "id": 923, "implemented": true, "kind": "function", "modifiers": [ { - "id": 913, + "id": 909, "kind": "modifierInvocation", "modifierName": { - "id": 912, + "id": 908, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "3789:9:8" + "src": "3772:9:8" }, "nodeType": "ModifierInvocation", - "src": "3789:9:8" + "src": "3772:9:8" } ], "name": "updateERC721Support", - "nameLocation": "3717:19:8", + "nameLocation": "3700:19:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 911, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 908, + "id": 904, "mutability": "mutable", "name": "nftToken", - "nameLocation": "3750:8:8", + "nameLocation": "3733:8:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "3742:16:8", + "scope": 923, + "src": "3725:16:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20561,10 +20324,10 @@ "typeString": "address" }, "typeName": { - "id": 907, + "id": 903, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3742:7:8", + "src": "3725:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20575,13 +20338,13 @@ }, { "constant": false, - "id": 910, + "id": 906, "mutability": "mutable", "name": "status", - "nameLocation": "3769:6:8", + "nameLocation": "3752:6:8", "nodeType": "VariableDeclaration", - "scope": 927, - "src": "3764:11:8", + "scope": 923, + "src": "3747:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20589,10 +20352,10 @@ "typeString": "bool" }, "typeName": { - "id": 909, + "id": 905, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3764:4:8", + "src": "3747:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20601,54 +20364,54 @@ "visibility": "internal" } ], - "src": "3736:43:8" + "src": "3719:43:8" }, "returnParameters": { - "id": 914, + "id": 910, "nodeType": "ParameterList", "parameters": [], - "src": "3799:0:8" + "src": "3782:0:8" }, - "scope": 970, - "src": "3708:179:8", + "scope": 966, + "src": "3691:179:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 947, + "id": 943, "nodeType": "Block", - "src": "3961:73:8", + "src": "3944:73:8", "statements": [ { "expression": { - "id": 940, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 936, + "id": 932, "name": "periods", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 524, - "src": "3967:7:8", + "src": "3950:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_bool_$", "typeString": "mapping(uint64 => bool)" } }, - "id": 938, + "id": 934, "indexExpression": { - "id": 937, + "id": 933, "name": "period", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "3975:6:8", + "referencedDeclaration": 925, + "src": "3958:6:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -20659,7 +20422,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3967:15:8", + "src": "3950:15:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20668,49 +20431,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 939, + "id": 935, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 931, - "src": "3985:6:8", + "referencedDeclaration": 927, + "src": "3968:6:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3967:24:8", + "src": "3950:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 941, + "id": 937, "nodeType": "ExpressionStatement", - "src": "3967:24:8" + "src": "3950:24:8" }, { "eventCall": { "arguments": [ { - "id": 943, + "id": 939, "name": "period", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 929, - "src": "4014:6:8", + "referencedDeclaration": 925, + "src": "3997:6:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { - "id": 944, + "id": 940, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 931, - "src": "4022:6:8", + "referencedDeclaration": 927, + "src": "4005:6:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20728,18 +20491,18 @@ "typeString": "bool" } ], - "id": 942, + "id": 938, "name": "EditPeriods", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 552, - "src": "4002:11:8", + "src": "3985:11:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_bool_$returns$__$", "typeString": "function (uint64,bool)" } }, - "id": 945, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -20747,54 +20510,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4002:27:8", + "src": "3985:27:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 946, + "id": 942, "nodeType": "EmitStatement", - "src": "3997:32:8" + "src": "3980:32:8" } ] }, "functionSelector": "2e167f83", - "id": 948, + "id": 944, "implemented": true, "kind": "function", "modifiers": [ { - "id": 934, + "id": 930, "kind": "modifierInvocation", "modifierName": { - "id": 933, + "id": 929, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "3951:9:8" + "src": "3934:9:8" }, "nodeType": "ModifierInvocation", - "src": "3951:9:8" + "src": "3934:9:8" } ], "name": "updatePeriods", - "nameLocation": "3900:13:8", + "nameLocation": "3883:13:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 932, + "id": 928, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 929, + "id": 925, "mutability": "mutable", "name": "period", - "nameLocation": "3921:6:8", + "nameLocation": "3904:6:8", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "3914:13:8", + "scope": 944, + "src": "3897:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20802,10 +20565,10 @@ "typeString": "uint64" }, "typeName": { - "id": 928, + "id": 924, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3914:6:8", + "src": "3897:6:8", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -20815,13 +20578,13 @@ }, { "constant": false, - "id": 931, + "id": 927, "mutability": "mutable", "name": "status", - "nameLocation": "3934:6:8", + "nameLocation": "3917:6:8", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "3929:11:8", + "scope": 944, + "src": "3912:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20829,10 +20592,10 @@ "typeString": "bool" }, "typeName": { - "id": 930, + "id": 926, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3929:4:8", + "src": "3912:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20841,40 +20604,40 @@ "visibility": "internal" } ], - "src": "3913:28:8" + "src": "3896:28:8" }, "returnParameters": { - "id": 935, + "id": 931, "nodeType": "ParameterList", "parameters": [], - "src": "3961:0:8" + "src": "3944:0:8" }, - "scope": 970, - "src": "3891:143:8", + "scope": 966, + "src": "3874:143:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 968, + "id": 964, "nodeType": "Block", - "src": "4114:139:8", + "src": "4097:139:8", "statements": [ { "assignments": [ - 956 + 952 ], "declarations": [ { "constant": false, - "id": 956, + "id": 952, "mutability": "mutable", "name": "oldVal", - "nameLocation": "4128:6:8", + "nameLocation": "4111:6:8", "nodeType": "VariableDeclaration", - "scope": 968, - "src": "4120:14:8", + "scope": 964, + "src": "4103:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20882,10 +20645,10 @@ "typeString": "uint256" }, "typeName": { - "id": 955, + "id": 951, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4120:7:8", + "src": "4103:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20894,36 +20657,36 @@ "visibility": "internal" } ], - "id": 958, + "id": 954, "initialValue": { - "id": 957, + "id": 953, "name": "cooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 498, - "src": "4137:15:8", + "src": "4120:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4120:32:8" + "src": "4103:32:8" }, { "expression": { - "id": 961, + "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 959, + "id": 955, "name": "cooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 498, - "src": "4158:15:8", + "src": "4141:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20932,49 +20695,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 960, + "id": 956, "name": "_cooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "4176:16:8", + "referencedDeclaration": 946, + "src": "4159:16:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4158:34:8", + "src": "4141:34:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 962, + "id": 958, "nodeType": "ExpressionStatement", - "src": "4158:34:8" + "src": "4141:34:8" }, { "eventCall": { "arguments": [ { - "id": 964, + "id": 960, "name": "oldVal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 956, - "src": "4223:6:8", + "referencedDeclaration": 952, + "src": "4206:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 965, + "id": 961, "name": "_cooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "4231:16:8", + "referencedDeclaration": 946, + "src": "4214:16:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20992,18 +20755,18 @@ "typeString": "uint256" } ], - "id": 963, + "id": 959, "name": "EditCooldownSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 558, - "src": "4203:19:8", + "src": "4186:19:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 966, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -21011,54 +20774,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4203:45:8", + "src": "4186:45:8", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 967, + "id": 963, "nodeType": "EmitStatement", - "src": "4198:50:8" + "src": "4181:50:8" } ] }, "functionSelector": "1f4fa1c3", - "id": 969, + "id": 965, "implemented": true, "kind": "function", "modifiers": [ { - "id": 953, + "id": 949, "kind": "modifierInvocation", "modifierName": { - "id": 952, + "id": 948, "name": "onlyOwner", "nodeType": "IdentifierPath", "referencedDeclaration": 31, - "src": "4104:9:8" + "src": "4087:9:8" }, "nodeType": "ModifierInvocation", - "src": "4104:9:8" + "src": "4087:9:8" } ], "name": "updateCooldownSeconds", - "nameLocation": "4047:21:8", + "nameLocation": "4030:21:8", "nodeType": "FunctionDefinition", "parameters": { - "id": 951, + "id": 947, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 950, + "id": 946, "mutability": "mutable", "name": "_cooldownSeconds", - "nameLocation": "4077:16:8", + "nameLocation": "4060:16:8", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4069:24:8", + "scope": 965, + "src": "4052:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21066,10 +20829,10 @@ "typeString": "uint256" }, "typeName": { - "id": 949, + "id": 945, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4069:7:8", + "src": "4052:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21078,27 +20841,27 @@ "visibility": "internal" } ], - "src": "4068:26:8" + "src": "4051:26:8" }, "returnParameters": { - "id": 954, + "id": 950, "nodeType": "ParameterList", "parameters": [], - "src": "4114:0:8" + "src": "4097:0:8" }, - "scope": 970, - "src": "4038:215:8", + "scope": 966, + "src": "4021:215:8", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 971, - "src": "359:3896:8", + "scope": 967, + "src": "359:3879:8", "usedErrors": [] } ], - "src": "32:4224:8" + "src": "32:4207:8" }, "compiler": { "name": "solc", @@ -21106,7 +20869,7 @@ }, "networks": {}, "schemaVersion": "3.4.11", - "updatedAt": "2023-08-23T03:20:10.716Z", + "updatedAt": "2023-08-25T08:40:25.078Z", "devdoc": { "kind": "dev", "methods": { diff --git a/contracts/stake/ERC721Staking.sol b/contracts/stake/ERC721Staking.sol index ad2b7b2..601952e 100644 --- a/contracts/stake/ERC721Staking.sol +++ b/contracts/stake/ERC721Staking.sol @@ -65,7 +65,7 @@ contract ERC721Staking is Ownable, ReentrancyGuard, Pausable, ERC721Holder { IERC721(nfts[i]).safeTransferFrom(account, address(this), tokenIds[i]); _beginTimes[i] = uint64(block.timestamp); - _stakeTimes[i] = _beginTimes[i] + staketimes[i]; + _stakeTimes[i] = staketimes[i]; stakingMap[nfts[i]][tokenIds[i]] = Staker( account, nfts[i],