From 65a0d367021c05a0b84273662e5d1f22a55eed97 Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:15:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0nft=20stating=E5=90=88?= =?UTF-8?q?=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/contracts/ERC721Staking.json | 21139 +++++++++++++++++++++++++++ contracts/stake/ERC721Staking.sol | 136 + contracts/stake/TokenStaking.sol | 110 + migrations/9_deploy_stake.js | 40 + out_arbitrum_one_release.json | 14 +- out_arbitrum_testnet_dev.json | 6 + 6 files changed, 21444 insertions(+), 1 deletion(-) create mode 100644 build/contracts/ERC721Staking.json create mode 100644 contracts/stake/ERC721Staking.sol create mode 100644 contracts/stake/TokenStaking.sol create mode 100644 migrations/9_deploy_stake.js diff --git a/build/contracts/ERC721Staking.json b/build/contracts/ERC721Staking.json new file mode 100644 index 0000000..9ef6143 --- /dev/null +++ b/build/contracts/ERC721Staking.json @@ -0,0 +1,21139 @@ +{ + "contractName": "ERC721Staking", + "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": [], + "name": "renounceOwnership", + "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": "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": "nfts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "name": "redeem", + "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" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_cooldownSeconds", + "type": "uint256" + } + ], + "name": "updateCooldownSeconds", + "outputs": [], + "stateMutability": "nonpayable", + "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", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:32941:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:9", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:9" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:9" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:9", + "type": "" + } + ], + "src": "7:75:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:9" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:9" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:9", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:9", + "type": "" + } + ], + "src": "334:126:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:9", + "type": "" + } + ], + "src": "466:96:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:9" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:9" + }, + "nodeType": "YulIf", + "src": "621:63:9" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:9", + "type": "" + } + ], + "src": "568:122:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "748:87:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "758:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "780:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "767:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "767:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "758:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "823:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "796:26:9" + }, + "nodeType": "YulFunctionCall", + "src": "796:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "796:33:9" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "726:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "734:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "742:5:9", + "type": "" + } + ], + "src": "696:139:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "886:32:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "896:16:9", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "907:5:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "896:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "868:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "878:7:9", + "type": "" + } + ], + "src": "841:77:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:9" + }, + "nodeType": "YulIf", + "src": "977:63:9" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:9", + "type": "" + } + ], + "src": "924:122:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1152:26:9" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:9" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:9", + "type": "" + } + ], + "src": "1052:139:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1286:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1303:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1306:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1296:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1296:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1296:12:9" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "1197:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1409:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1426:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1429:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1419:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1419:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1419:12:9" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "1320:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1491:54:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1501:38:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1519:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1526:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1515:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1515:14:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1535:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1531:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1531:7:9" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1511:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1511:28:9" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1501:6:9" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1474:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1484:6:9", + "type": "" + } + ], + "src": "1443:102:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1579:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1596:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1599:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1589:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1589:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1589:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1693:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1696:4:9", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1686:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1686:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1686:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1717:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1720:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1710:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1710:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1710:15:9" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1551:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1780:238:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1790:58:9", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1812:6:9" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1842:4:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1820:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "1820:27:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1808:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "1808:40:9" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1794:10:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1959:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1961:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "1961:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1961:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1902:10:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1914:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1899:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "1899:34:9" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1938:10:9" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1950:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1935:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "1935:22:9" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1896:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "1896:62:9" + }, + "nodeType": "YulIf", + "src": "1893:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1997:2:9", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "2001:10:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1990:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "1990:22:9" + }, + "nodeType": "YulExpressionStatement", + "src": "1990:22:9" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1766:6:9", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1774:4:9", + "type": "" + } + ], + "src": "1737:281:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2065:88:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2075:30:9", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "2085:18:9" + }, + "nodeType": "YulFunctionCall", + "src": "2085:20:9" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2075:6:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "2134:6:9" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2142:4:9" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "2114:19:9" + }, + "nodeType": "YulFunctionCall", + "src": "2114:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2114:33:9" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2049:4:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "2058:6:9", + "type": "" + } + ], + "src": "2024:129:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2225:241:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2330:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "2332:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "2332:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2332:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2302:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2310:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2299:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2299:30:9" + }, + "nodeType": "YulIf", + "src": "2296:56:9" + }, + { + "nodeType": "YulAssignment", + "src": "2362:37:9", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2392:6:9" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2370:21:9" + }, + "nodeType": "YulFunctionCall", + "src": "2370:29:9" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2362:4:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2436:23:9", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2448:4:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2454:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2444:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2444:15:9" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2436:4:9" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2209:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "2220:4:9", + "type": "" + } + ], + "src": "2159:307:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2523:103:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2546:3:9" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2551:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2556:6:9" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "2533:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "2533:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2533:30:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2604:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2609:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2600:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2600:16:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2618:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2593:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2593:27:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2593:27:9" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2505:3:9", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2510:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2515:6:9", + "type": "" + } + ], + "src": "2472:154:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2715:327:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2725:74:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2791:6:9" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2750:40:9" + }, + "nodeType": "YulFunctionCall", + "src": "2750:48:9" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2734:15:9" + }, + "nodeType": "YulFunctionCall", + "src": "2734:65:9" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2725:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2815:5:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2822:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2808:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "2808:21:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2808:21:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2838:27:9", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2853:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2860:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2849:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2849:16:9" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2842:3:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2903:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2905:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "2905:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2905:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2884:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2889:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2880:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "2880:16:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2898:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2877:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "2877:25:9" + }, + "nodeType": "YulIf", + "src": "2874:112:9" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3019:3:9" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "3024:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3029:6:9" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "2995:23:9" + }, + "nodeType": "YulFunctionCall", + "src": "2995:41:9" + }, + "nodeType": "YulExpressionStatement", + "src": "2995:41:9" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2688:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2693:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2701:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2709:5:9", + "type": "" + } + ], + "src": "2632:410:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3122:277:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3171:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3173:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "3173:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3173:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3150:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3158:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3146:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3146:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3165:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3142:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3142:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3135:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "3135:35:9" + }, + "nodeType": "YulIf", + "src": "3132:122:9" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3263:34:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3290:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3277:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "3277:20:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3267:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3306:87:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3366:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3374:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3362:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3362:17:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3381:6:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3389:3:9" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3315:46:9" + }, + "nodeType": "YulFunctionCall", + "src": "3315:78:9" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3306:5:9" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3100:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3108:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "3116:5:9", + "type": "" + } + ], + "src": "3061:338:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3531:817:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3578:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3580:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "3580:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "3580:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3552:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3561:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3548:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3548:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3573:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3544:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3544:33:9" + }, + "nodeType": "YulIf", + "src": "3541:120:9" + }, + { + "nodeType": "YulBlock", + "src": "3671:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3686:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3700:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3690:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3715:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3750:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3761:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3746:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3746:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3770:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3725:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "3725:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3715:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3798:118:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3813:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3827:2:9", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3817:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3843:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3878:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3889:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3874:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "3874:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3898:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3853:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "3853:53:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3843:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3926:118:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3941:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3955:2:9", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3945:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3971:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4006:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4017:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4002:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4002:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4026:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3981:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "3981:53:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3971:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4054:287:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4069:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4100:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4111:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4096:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4096:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4083:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "4083:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4073:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4162:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4164:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "4164:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4164:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4134:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4142:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4131:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "4131:30:9" + }, + "nodeType": "YulIf", + "src": "4128:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "4259:72:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4303:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4314:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4299:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4299:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4323:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4269:29:9" + }, + "nodeType": "YulFunctionCall", + "src": "4269:62:9" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4259:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3477:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3488:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3500:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3508:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3516:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3524:6:9", + "type": "" + } + ], + "src": "3405:943:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4398:105:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4408:89:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4423:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4430:66:9", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4419:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4419:78:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4408:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4380:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4390:7:9", + "type": "" + } + ], + "src": "4354:149:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4572:52:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4589:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4611:5:9" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "4594:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "4594:23:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4582:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "4582:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4582:36:9" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4560:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4567:3:9", + "type": "" + } + ], + "src": "4509:115:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4726:122:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4736:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4748:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4759:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4744:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4744:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4736:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4814:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4827:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4838:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4823:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4823:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nodeType": "YulIdentifier", + "src": "4772:41:9" + }, + "nodeType": "YulFunctionCall", + "src": "4772:69:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4772:69:9" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4698:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4710:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4721:4:9", + "type": "" + } + ], + "src": "4630:218:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4920:263:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4966:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4968:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "4968:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "4968:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4941:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4950:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4937:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4937:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4962:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4933:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "4933:32:9" + }, + "nodeType": "YulIf", + "src": "4930:119:9" + }, + { + "nodeType": "YulBlock", + "src": "5059:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5074:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5088:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5078:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5103:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5138:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5149:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5134:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5134:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5158:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5113:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "5113:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5103:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4890:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4901:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4913:6:9", + "type": "" + } + ], + "src": "4854:329:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5233:57:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5243:41:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5258:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5265:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5254:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "5254:30:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5243:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_uint64", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5215:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5225:7:9", + "type": "" + } + ], + "src": "5189:101:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5338:78:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5394:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5403:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5406:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5396:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5396:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5396:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5361:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5385:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nodeType": "YulIdentifier", + "src": "5368:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "5368:23:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5358:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5358:34:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5351:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5351:42:9" + }, + "nodeType": "YulIf", + "src": "5348:62:9" + } + ] + }, + "name": "validator_revert_t_uint64", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5331:5:9", + "type": "" + } + ], + "src": "5296:120:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5473:86:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5483:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5505:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5492:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "5492:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5483:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5547:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_uint64", + "nodeType": "YulIdentifier", + "src": "5521:25:9" + }, + "nodeType": "YulFunctionCall", + "src": "5521:32:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5521:32:9" + } + ] + }, + "name": "abi_decode_t_uint64", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5451:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5459:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5467:5:9", + "type": "" + } + ], + "src": "5422:137:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5607:48:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5617:32:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5642:5:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5635:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5635:13:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5628:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5628:21:9" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5617:7:9" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5589:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5599:7:9", + "type": "" + } + ], + "src": "5565:90:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5701:76:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5755:16:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5764:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5767:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5757:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5757:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5757:12:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5724:5:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5746:5:9" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "5731:14:9" + }, + "nodeType": "YulFunctionCall", + "src": "5731:21:9" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5721:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "5721:32:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5714:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "5714:40:9" + }, + "nodeType": "YulIf", + "src": "5711:60:9" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5694:5:9", + "type": "" + } + ], + "src": "5661:116:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5832:84:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5842:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5864:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5851:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "5851:20:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5842:5:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5904:5:9" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "5880:23:9" + }, + "nodeType": "YulFunctionCall", + "src": "5880:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "5880:30:9" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5810:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5818:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5826:5:9", + "type": "" + } + ], + "src": "5783:133:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6001:387:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6047:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6049:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "6049:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6049:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6022:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6031:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6018:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6018:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6043:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6014:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6014:32:9" + }, + "nodeType": "YulIf", + "src": "6011:119:9" + }, + { + "nodeType": "YulBlock", + "src": "6140:116:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6155:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6169:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6159:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6184:62:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6218:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6229:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6214:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6214:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6238:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nodeType": "YulIdentifier", + "src": "6194:19:9" + }, + "nodeType": "YulFunctionCall", + "src": "6194:52:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6184:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6266:115:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6281:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6295:2:9", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6285:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6311:60:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6343:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6354:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6339:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6339:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6363:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "6321:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "6321:50:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6311:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5963:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5974:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5986:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5994:6:9", + "type": "" + } + ], + "src": "5922:466:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6483:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6500:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6503:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6493:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6493:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6493:12:9" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "6394:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6606:28:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6623:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6626:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6616:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6616:12:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6616:12:9" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "6517:117:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6747:478:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6796:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "6798:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "6798:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6798:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6775:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6783:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6771:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6771:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6790:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6767:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "6767:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6760:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "6760:35:9" + }, + "nodeType": "YulIf", + "src": "6757:122:9" + }, + { + "nodeType": "YulAssignment", + "src": "6888:30:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6911:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6898:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "6898:20:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6888:6:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6961:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "6963:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "6963:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "6963:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6933:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6941:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6930:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "6930:30:9" + }, + "nodeType": "YulIf", + "src": "6927:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "7053:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7069:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7077:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7065:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7065:17:9" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7053:8:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7136:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "7138:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7138:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7138:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7101:8:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7115:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7123:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7111:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7111:17:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7097:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7097:32:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7131:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7094:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "7094:41:9" + }, + "nodeType": "YulIf", + "src": "7091:128:9" + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6714:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6722:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "6730:8:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6740:6:9", + "type": "" + } + ], + "src": "6657:568:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7338:478:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7387:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "7389:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7389:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7389:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7366:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7374:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7362:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7362:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7381:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7358:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7358:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7351:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "7351:35:9" + }, + "nodeType": "YulIf", + "src": "7348:122:9" + }, + { + "nodeType": "YulAssignment", + "src": "7479:30:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7502:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7489:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "7489:20:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7479:6:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7552:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "7554:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7554:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7554:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7524:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7532:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7521:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "7521:30:9" + }, + "nodeType": "YulIf", + "src": "7518:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "7644:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7660:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7668:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7656:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7656:17:9" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7644:8:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7727:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "7729:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7729:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7729:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7692:8:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7706:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7714:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7702:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7702:17:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7688:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7688:32:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7722:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7685:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "7685:41:9" + }, + "nodeType": "YulIf", + "src": "7682:128:9" + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7305:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7313:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "7321:8:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7331:6:9", + "type": "" + } + ], + "src": "7248:568:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7927:478:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7976:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "7978:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "7978:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "7978:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7955:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7963:4:9", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7951:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7951:17:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7970:3:9" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7947:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "7947:27:9" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7940:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "7940:35:9" + }, + "nodeType": "YulIf", + "src": "7937:122:9" + }, + { + "nodeType": "YulAssignment", + "src": "8068:30:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8091:6:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8078:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "8078:20:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8068:6:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8141:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "8143:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8143:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8143:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8113:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8121:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8110:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8110:30:9" + }, + "nodeType": "YulIf", + "src": "8107:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "8233:29:9", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8249:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8257:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8245:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8245:17:9" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "8233:8:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8316:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "8318:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8318:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8318:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "8281:8:9" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8295:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8303:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8291:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8291:17:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8277:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8277:32:9" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8311:3:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8274:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8274:41:9" + }, + "nodeType": "YulIf", + "src": "8271:128:9" + } + ] + }, + "name": "abi_decode_t_array$_t_uint64_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7894:6:9", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7902:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "7910:8:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7920:6:9", + "type": "" + } + ], + "src": "7838:567:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8615:1103:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8661:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "8663:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8663:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8663:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "8636:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8645:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8632:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8632:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8657:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "8628:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8628:32:9" + }, + "nodeType": "YulIf", + "src": "8625:119:9" + }, + { + "nodeType": "YulBlock", + "src": "8754:312:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8769:45:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8800:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8811:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8796:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "8796:17:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "8783:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "8783:31:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "8773:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8861:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "8863:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "8863:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "8863:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "8833:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8841:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8830:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "8830:30:9" + }, + "nodeType": "YulIf", + "src": "8827:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "8958:98:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9028:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9039:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9024:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9024:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9048:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "8976:47:9" + }, + "nodeType": "YulFunctionCall", + "src": "8976:80:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8958:6:9" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "8966:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9076:313:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9091:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9122:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9133:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9118:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9118:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9105:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "9105:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9095:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9184:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9186:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "9186:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9186:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9156:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9164:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9153:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "9153:30:9" + }, + "nodeType": "YulIf", + "src": "9150:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "9281:98:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9351:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9362:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9347:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9347:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9371:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "9299:47:9" + }, + "nodeType": "YulFunctionCall", + "src": "9299:80:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "9281:6:9" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "9289:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9399:312:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9414:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9445:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9456:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9441:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9441:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9428:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "9428:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9418:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9507:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "9509:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "9509:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9509:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9479:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9487:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9476:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "9476:30:9" + }, + "nodeType": "YulIf", + "src": "9473:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "9604:97:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9673:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9684:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9669:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9669:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9693:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint64_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "9622:46:9" + }, + "nodeType": "YulFunctionCall", + "src": "9622:79:9" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "9604:6:9" + }, + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "9612:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint64_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8545:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "8556:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8568:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "8576:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "8584:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "8592:6:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "8600:6:9", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "8608:6:9", + "type": "" + } + ], + "src": "8411:1307:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9877:781:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9923:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9925:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "9925:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "9925:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9898:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9907:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9894:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9894:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9919:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9890:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "9890:32:9" + }, + "nodeType": "YulIf", + "src": "9887:119:9" + }, + { + "nodeType": "YulBlock", + "src": "10016:312:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10031:45:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10062:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10073:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10058:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10058:17:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10045:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "10045:31:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10035:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10123:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10125:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "10125:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10125:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10095:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10103:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10092:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "10092:30:9" + }, + "nodeType": "YulIf", + "src": "10089:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "10220:98:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10290:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10301:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10286:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10286:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10310:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10238:47:9" + }, + "nodeType": "YulFunctionCall", + "src": "10238:80:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10220:6:9" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10228:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10338:313:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10353:46:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10384:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10395:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10380:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10380:18:9" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "10367:12:9" + }, + "nodeType": "YulFunctionCall", + "src": "10367:32:9" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10357:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10446:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "10448:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "10448:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10448:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10418:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10426:18:9", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10415:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "10415:30:9" + }, + "nodeType": "YulIf", + "src": "10412:117:9" + }, + { + "nodeType": "YulAssignment", + "src": "10543:98:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10613:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10624:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10609:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10609:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10633:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "10561:47:9" + }, + "nodeType": "YulFunctionCall", + "src": "10561:80:9" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10543:6:9" + }, + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "10551:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9823:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9834:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9846:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9854:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "9862:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "9870:6:9", + "type": "" + } + ], + "src": "9724:934:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10747:391:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10793:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10795:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "10795:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "10795:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10768:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10777:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10764:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10764:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10789:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10760:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10760:32:9" + }, + "nodeType": "YulIf", + "src": "10757:119:9" + }, + { + "nodeType": "YulBlock", + "src": "10886:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10901:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10915:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10905:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10930:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10965:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10976:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10961:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "10961:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10985:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10940:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "10940:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10930:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "11013:118:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11028:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11042:2:9", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11032:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11058:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11093:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11104:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11089:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11089:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11113:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "11068:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "11068:53:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11058:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10709:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10720:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10732:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10740:6:9", + "type": "" + } + ], + "src": "10664:474:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11209:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11226:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11249:5:9" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "11231:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "11231:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11219:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11219:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11219:37:9" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11197:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11204:3:9", + "type": "" + } + ], + "src": "11144:118:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11333:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11350:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11373:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11355:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "11355:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11343:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11343:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11343:37:9" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11321:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11328:3:9", + "type": "" + } + ], + "src": "11268:118:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11455:52:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11472:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11494:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nodeType": "YulIdentifier", + "src": "11477:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "11477:23:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11465:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "11465:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11465:36:9" + } + ] + }, + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11443:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11450:3:9", + "type": "" + } + ], + "src": "11392:115:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11719:450:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11729:27:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11741:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11752:3:9", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11737:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11737:19:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11729:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11810:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11823:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11834:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11819:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11819:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11766:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "11766:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11766:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11891:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11904:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11915:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11900:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11900:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "11847:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "11847:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11847:72:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11973:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11986:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11997:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11982:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "11982:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11929:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "11929:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "11929:72:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "12053:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12066:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12077:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12062:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12062:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nodeType": "YulIdentifier", + "src": "12011:41:9" + }, + "nodeType": "YulFunctionCall", + "src": "12011:70:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12011:70:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "12133:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12146:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12157:3:9", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12142:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12142:19:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nodeType": "YulIdentifier", + "src": "12091:41:9" + }, + "nodeType": "YulFunctionCall", + "src": "12091:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12091:71:9" + } + ] + }, + "name": "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", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11659:9:9", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "11671:6:9", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11679:6:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11687:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11695:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11703:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11714:4:9", + "type": "" + } + ], + "src": "11513:656:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12255:388:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12301:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "12303:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "12303:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12303:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12276:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12285:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12272:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12272:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12297:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12268:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12268:32:9" + }, + "nodeType": "YulIf", + "src": "12265:119:9" + }, + { + "nodeType": "YulBlock", + "src": "12394:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12409:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12423:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12413:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12438:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12473:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12484:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12469:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12469:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12493:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "12448:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "12448:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12438:6:9" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "12521:115:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12536:16:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12550:2:9", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "12540:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12566:60:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12598:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "12609:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12594:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12594:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "12618:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "12576:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "12576:50:9" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12566:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12217:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "12228:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12240:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12248:6:9", + "type": "" + } + ], + "src": "12175:468:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12708:50:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12725:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12745:5:9" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "12730:14:9" + }, + "nodeType": "YulFunctionCall", + "src": "12730:21:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12718:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "12718:34:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12718:34:9" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12696:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12703:3:9", + "type": "" + } + ], + "src": "12649:109:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12856:118:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12866:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12878:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12889:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12874:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12874:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12866:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12940:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12953:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12964:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12949:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "12949:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "12902:37:9" + }, + "nodeType": "YulFunctionCall", + "src": "12902:65:9" + }, + "nodeType": "YulExpressionStatement", + "src": "12902:65:9" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12828:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12840:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12851:4:9", + "type": "" + } + ], + "src": "12764:210:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13046:263:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13092:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13094:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "13094:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13094:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13067:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13076:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13063:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13063:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13088:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13059:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13059:32:9" + }, + "nodeType": "YulIf", + "src": "13056:119:9" + }, + { + "nodeType": "YulBlock", + "src": "13185:117:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13200:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13214:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13204:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13229:63:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13264:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "13275:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13260:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13260:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13284:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "13239:20:9" + }, + "nodeType": "YulFunctionCall", + "src": "13239:53:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13229:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13016:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13027:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13039:6:9", + "type": "" + } + ], + "src": "12980:329:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13413:124:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13423:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13435:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13446:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13431:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13431:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13423:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13503:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13516:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13527:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13512:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13512:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "13459:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "13459:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13459:71:9" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13385:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13397:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13408:4:9", + "type": "" + } + ], + "src": "13315:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13641:124:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13651:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13663:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13674:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13659:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13659:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13651:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13731:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13744:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13755:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13740:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13740:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "13687:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "13687:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13687:71:9" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13613:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13625:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13636:4:9", + "type": "" + } + ], + "src": "13543:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13836:262:9", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13882:83:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "13884:77:9" + }, + "nodeType": "YulFunctionCall", + "src": "13884:79:9" + }, + "nodeType": "YulExpressionStatement", + "src": "13884:79:9" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "13857:7:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13866:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13853:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13853:23:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13878:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "13849:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "13849:32:9" + }, + "nodeType": "YulIf", + "src": "13846:119:9" + }, + { + "nodeType": "YulBlock", + "src": "13975:116:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13990:15:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14004:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "13994:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "14019:62:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14053:9:9" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "14064:6:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14049:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14049:22:9" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "14073:7:9" + } + ], + "functionName": { + "name": "abi_decode_t_uint64", + "nodeType": "YulIdentifier", + "src": "14029:19:9" + }, + "nodeType": "YulFunctionCall", + "src": "14029:52:9" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14019:6:9" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13806:9:9", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "13817:7:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13829:6:9", + "type": "" + } + ], + "src": "13771:327:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14230:206:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14240:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14252:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14263:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14248:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14248:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14240:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14320:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14333:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14344:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14329:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14329:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14276:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "14276:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14276:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14401:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14414:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14425:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14410:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14410:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14357:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "14357:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14357:72:9" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14194:9:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14206:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14214:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14225:4:9", + "type": "" + } + ], + "src": "14104:332:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14560:198:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14570:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14582:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14593:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14578:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14578:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14570:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14648:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14661:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14672:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14657:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14657:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64_fromStack", + "nodeType": "YulIdentifier", + "src": "14606:41:9" + }, + "nodeType": "YulFunctionCall", + "src": "14606:69:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14606:69:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14723:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14736:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14747:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14732:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14732:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "14685:37:9" + }, + "nodeType": "YulFunctionCall", + "src": "14685:66:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14685:66:9" + } + ] + }, + "name": "abi_encode_tuple_t_uint64_t_bool__to_t_uint64_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14524:9:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14536:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14544:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14555:4:9", + "type": "" + } + ], + "src": "14442:316:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14860:73:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14877:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14882:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14870:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "14870:19:9" + }, + "nodeType": "YulExpressionStatement", + "src": "14870:19:9" + }, + { + "nodeType": "YulAssignment", + "src": "14898:29:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14917:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14922:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14913:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "14913:14:9" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "14898:11:9" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14832:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14837:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "14848:11:9", + "type": "" + } + ], + "src": "14764:169:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15045:126:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15067:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15075:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15063:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15063:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d20746f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15079:34:9", + "type": "", + "value": "ERC721Staking: nfts length != to" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15056:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15056:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15056:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15135:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15143:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15131:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15131:15:9" + }, + { + "hexValue": "6b656e496473206c656e677468", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15148:15:9", + "type": "", + "value": "kenIds length" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15124:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15124:40:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15124:40:9" + } + ] + }, + "name": "store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15037:6:9", + "type": "" + } + ], + "src": "14939:232:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15323:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15333:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15399:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15404:2:9", + "type": "", + "value": "45" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15340:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "15340:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15333:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15505:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6", + "nodeType": "YulIdentifier", + "src": "15416:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "15416:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15416:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "15518:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15529:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15534:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15525:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15525:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15518:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15311:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15319:3:9", + "type": "" + } + ], + "src": "15177:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15720:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15730:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15742:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15753:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15738:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15738:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15730:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15777:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15788:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15773:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15773:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15796:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15802:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15792:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "15792:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15766:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "15766:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "15766:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "15822:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15956:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15830:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "15830:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15822:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15700:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15715:4:9", + "type": "" + } + ], + "src": "15549:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16080:128:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16102:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16110:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16098:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16098:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d207374", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16114:34:9", + "type": "", + "value": "ERC721Staking: nfts length != st" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16091:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16091:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16091:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16170:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16178:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16166:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16166:15:9" + }, + { + "hexValue": "616b6574696d6573206c656e677468", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16183:17:9", + "type": "", + "value": "aketimes length" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16159:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16159:42:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16159:42:9" + } + ] + }, + "name": "store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16072:6:9", + "type": "" + } + ], + "src": "15974:234:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16360:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16370:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16436:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16441:2:9", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16377:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "16377:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16370:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16542:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69", + "nodeType": "YulIdentifier", + "src": "16453:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "16453:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16453:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "16555:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16566:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16571:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16562:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16562:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16555:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16348:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16356:3:9", + "type": "" + } + ], + "src": "16214:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16757:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16767:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16779:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16790:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16775:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16775:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16767:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16814:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16825:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16810:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16810:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16833:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16839:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16829:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "16829:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16803:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "16803:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "16803:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "16859:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16993:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16867:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "16867:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16859:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16737:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16752:4:9", + "type": "" + } + ], + "src": "16586:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17039:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17056:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17059:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17049:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "17049:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17049:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17153:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17156:4:9", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17146:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "17146:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17146:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17177:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17180:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "17170:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "17170:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17170:15:9" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "17011:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17303:116:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17325:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17333:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17321:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "17321:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a206e6674206973206e6f7420737570706f72", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17337:34:9", + "type": "", + "value": "ERC721Staking: nft is not suppor" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17314:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "17314:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17314:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17393:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17401:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17389:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "17389:15:9" + }, + { + "hexValue": "746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17406:5:9", + "type": "", + "value": "ted" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17382:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "17382:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17382:30:9" + } + ] + }, + "name": "store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17295:6:9", + "type": "" + } + ], + "src": "17197:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17571:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17581:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17647:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17652:2:9", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17588:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "17588:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17581:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17753:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd", + "nodeType": "YulIdentifier", + "src": "17664:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "17664:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "17664:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "17766:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17777:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17782:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17773:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "17773:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17766:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17559:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17567:3:9", + "type": "" + } + ], + "src": "17425:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17968:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17978:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17990:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18001:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17986:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "17986:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17978:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18025:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18036:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18021:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "18021:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18044:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18050:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18040:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "18040:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18014:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "18014:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "18014:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "18070:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18204:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18078:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "18078:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18070:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17948:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17963:4:9", + "type": "" + } + ], + "src": "17797:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18328:122:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18350:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18358:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18346:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "18346:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a207374616b6574696d65206973206e6f7420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18362:34:9", + "type": "", + "value": "ERC721Staking: staketime is not " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18339:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "18339:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "18339:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18418:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18426:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18414:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "18414:15:9" + }, + { + "hexValue": "737570706f72746564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18431:11:9", + "type": "", + "value": "supported" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18407:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "18407:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "18407:36:9" + } + ] + }, + "name": "store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18320:6:9", + "type": "" + } + ], + "src": "18222:228:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18602:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18612:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18678:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18683:2:9", + "type": "", + "value": "41" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18619:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "18619:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18612:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18784:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f", + "nodeType": "YulIdentifier", + "src": "18695:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "18695:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "18695:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "18797:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18808:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18813:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18804:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "18804:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18797:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18590:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18598:3:9", + "type": "" + } + ], + "src": "18456:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18999:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19009:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19021:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19032:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19017:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19017:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19009:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19056:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19067:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19052:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19052:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19075:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19081:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19071:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19071:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19045:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "19045:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19045:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "19101:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19235:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19109:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "19109:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19101:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18979:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18994:4:9", + "type": "" + } + ], + "src": "18828:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19407:288:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19417:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19429:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19440:2:9", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19425:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19425:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19417:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19497:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19510:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19521:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19506:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19506:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19453:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "19453:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19453:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "19578:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19591:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19602:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19587:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19587:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "19534:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "19534:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19534:72:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "19660:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19673:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19684:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19669:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "19669:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "19616:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "19616:72:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19616:72:9" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19363:9:9", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "19375:6:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "19383:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19391:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19402:4:9", + "type": "" + } + ], + "src": "19253:442:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19729:152:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19746:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19749:77:9", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19739:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "19739:88:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19739:88:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19843:1:9", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19846:4:9", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19836:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "19836:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19836:15:9" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19867:1:9", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19870:4:9", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "19860:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "19860:15:9" + }, + "nodeType": "YulExpressionStatement", + "src": "19860:15:9" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "19701:180:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19930:211: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", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20227:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "20209:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "20209:24:9" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20200:5:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20323:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "20325:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "20325:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "20325:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20248:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20255:66:9", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "20245:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "20245:77:9" + }, + "nodeType": "YulIf", + "src": "20242:103:9" + }, + { + "nodeType": "YulAssignment", + "src": "20354:20:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20365:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20372:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20361:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "20361:13:9" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "20354:3:9" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20176:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "20186:3:9", + "type": "" + } + ], + "src": "20147:233:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20483:40:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20494:22:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20510:5:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "20504:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "20504:12:9" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20494:6:9" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20466:5:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20476:6:9", + "type": "" + } + ], + "src": "20386:137:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20663:73:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20680:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "20685:6:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20673:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "20673:19:9" + }, + "nodeType": "YulExpressionStatement", + "src": "20673:19:9" + }, + { + "nodeType": "YulAssignment", + "src": "20701:29:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20720:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20725:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20716:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "20716:14:9" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "20701:11:9" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20635:3:9", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "20640:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "20651:11:9", + "type": "" + } + ], + "src": "20529:207:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20837:60:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20847:11:9", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "20855:3:9" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "20847:4:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "20868:22:9", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "20880:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20885:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20876:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "20876:14:9" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "20868:4:9" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "20824:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "20832:4:9", + "type": "" + } + ], + "src": "20742:155:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20958:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20975:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20998:5:9" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "20980:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "20980:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20968:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "20968:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "20968:37:9" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20946:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20953:3:9", + "type": "" + } + ], + "src": "20903:108:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21072:53:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21089:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21112:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21094:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "21094:24:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21082:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "21082:37:9" + }, + "nodeType": "YulExpressionStatement", + "src": "21082:37:9" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21060:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21067:3:9", + "type": "" + } + ], + "src": "21017:108:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21184:52:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21201:3:9" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21223:5:9" + } + ], + "functionName": { + "name": "cleanup_t_uint64", + "nodeType": "YulIdentifier", + "src": "21206:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "21206:23:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21194:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "21194:36:9" + }, + "nodeType": "YulExpressionStatement", + "src": "21194:36:9" + } + ] + }, + "name": "abi_encode_t_uint64_to_t_uint64", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21172:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21179:3:9", + "type": "" + } + ], + "src": "21131:105:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21410:917:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21420:26:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21436:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21441:4:9", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21432:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21432:14:9" + }, + "variables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21424:4:9", + "type": "" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "21456:164:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21491:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21521:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21528:4:9", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21517:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21517:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21511:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "21511:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "21495:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "21581:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21599:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21604:4:9", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21595:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21595:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "21547:33:9" + }, + "nodeType": "YulFunctionCall", + "src": "21547:63:9" + }, + "nodeType": "YulExpressionStatement", + "src": "21547:63:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "21630:163:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21664:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21694:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21701:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21690:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21690:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21684:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "21684:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "21668:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "21754:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21772:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21777:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21768:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21768:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nodeType": "YulIdentifier", + "src": "21720:33:9" + }, + "nodeType": "YulFunctionCall", + "src": "21720:63:9" + }, + "nodeType": "YulExpressionStatement", + "src": "21720:63:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "21803:167:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "21841:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "21871:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21878:4:9", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21867:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21867:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "21861:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "21861:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "21845:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "21931:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21949:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21954:4:9", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21945:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "21945:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "21897:33:9" + }, + "nodeType": "YulFunctionCall", + "src": "21897:63:9" + }, + "nodeType": "YulExpressionStatement", + "src": "21897:63:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "21980:163:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22016:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22046:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22053:4:9", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22042:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22042:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "22036:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "22036:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "22020:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "22104:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22122:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22127:4:9", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22118:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22118:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64", + "nodeType": "YulIdentifier", + "src": "22072:31:9" + }, + "nodeType": "YulFunctionCall", + "src": "22072:61:9" + }, + "nodeType": "YulExpressionStatement", + "src": "22072:61:9" + } + ] + }, + { + "nodeType": "YulBlock", + "src": "22153:167:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22193:43:9", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "22223:5:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22230:4:9", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22219:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22219:16:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "22213:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "22213:23:9" + }, + "variables": [ + { + "name": "memberValue0", + "nodeType": "YulTypedName", + "src": "22197:12:9", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nodeType": "YulIdentifier", + "src": "22281:12:9" + }, + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22299:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22304:4:9", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22295:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22295:14:9" + } + ], + "functionName": { + "name": "abi_encode_t_uint64_to_t_uint64", + "nodeType": "YulIdentifier", + "src": "22249:31:9" + }, + "nodeType": "YulFunctionCall", + "src": "22249:61:9" + }, + "nodeType": "YulExpressionStatement", + "src": "22249:61:9" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "21397:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21404:3:9", + "type": "" + } + ], + "src": "21308:1019:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22459:145:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "22549:6:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22557: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" + }, + "nodeType": "YulFunctionCall", + "src": "22469:92:9" + }, + "nodeType": "YulExpressionStatement", + "src": "22469:92:9" + }, + { + "nodeType": "YulAssignment", + "src": "22570:28:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "22588:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22593:4:9", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22584:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22584:14:9" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "22570:10:9" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_struct$_Staker_$509_memory_ptr_to_t_struct$_Staker_$509_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22432:6:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22440:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "22448:10:9", + "type": "" + } + ], + "src": "22333:271:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22708:38:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "22718:22:9", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "22730:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22735:4:9", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22726:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "22726:14:9" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "22718:4:9" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "22695:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "22703:4:9", + "type": "" + } + ], + "src": "22610:136:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22992:746:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23002:91:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23087:5:9" + } + ], + "functionName": { + "name": "array_length_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "23016:70:9" + }, + "nodeType": "YulFunctionCall", + "src": "23016:77:9" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "23006:6:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23102:116:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23206:3:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "23211:6:9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23109:96:9" + }, + "nodeType": "YulFunctionCall", + "src": "23109:109:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23102:3:9" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "23227:94:9", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "23315:5:9" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "23242:72:9" + }, + "nodeType": "YulFunctionCall", + "src": "23242:79:9" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "23231:7:9", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "23330:21:9", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "23344:7:9" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "23334:6:9", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23420:293:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23434:34:9", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "23461:6:9" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "23455:5:9" + }, + "nodeType": "YulFunctionCall", + "src": "23455:13:9" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "23438:13:9", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23481:116:9", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "23578:13:9" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23593: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" + }, + "nodeType": "YulFunctionCall", + "src": "23488:109:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23481:3:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "23610:93:9", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "23696:6:9" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "23620:75:9" + }, + "nodeType": "YulFunctionCall", + "src": "23620:83:9" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "23610:6:9" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "23382:1:9" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "23385:6:9" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "23379:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "23379:13:9" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "23393:18:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23395:14:9", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "23404:1:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23407:1:9", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23400:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "23400:9:9" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "23395:1:9" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "23364:14:9", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "23366:10:9", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23375:1:9", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "23370:1:9", + "type": "" + } + ] + } + ] + }, + "src": "23360:353:9" + }, + { + "nodeType": "YulAssignment", + "src": "23722:10:9", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23729:3:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23722:3:9" + } + ] + } + ] + }, + "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": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "22971:5:9", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "22978:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "22987:3:9", + "type": "" + } + ], + "src": "22822:916:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23938:271:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23948:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23960:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23971:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23956:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "23956:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23948:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23995:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24006:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23991:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "23991:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24014:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24020:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24010:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "24010:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23984:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "23984:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "23984:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "24040:162:9", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "24188:6:9" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24197: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" + }, + "nodeType": "YulFunctionCall", + "src": "24048:154:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24040:4:9" + } + ] + } + ] + }, + "name": "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", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23910:9:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "23922:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23933:4:9", + "type": "" + } + ], + "src": "23744:465:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24321:121:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24343:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24351:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24339:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "24339:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d206964", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24355:34:9", + "type": "", + "value": "ERC721Staking: nfts length != id" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24332:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "24332:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "24332:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24411:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24419:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24407:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "24407:15:9" + }, + { + "hexValue": "73206c656e677468", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24424:10:9", + "type": "", + "value": "s length" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24400:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "24400:35:9" + }, + "nodeType": "YulExpressionStatement", + "src": "24400:35:9" + } + ] + }, + "name": "store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24313:6:9", + "type": "" + } + ], + "src": "24215:227:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24594:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24604:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24670:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24675:2:9", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24611:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "24611:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24604:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24776:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", + "nodeType": "YulIdentifier", + "src": "24687:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "24687:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "24687:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "24789:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24800:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24805:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24796:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "24796:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24789:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24582:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24590:3:9", + "type": "" + } + ], + "src": "24448:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24991:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25001:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25013:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25024:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25009:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25009:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25001:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25048:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25059:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25044:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25044:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25067:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25073:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25063:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25063:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25037:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "25037:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "25037:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "25093:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25227:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25101:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "25101:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25093:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24971:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24986:4:9", + "type": "" + } + ], + "src": "24820:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25351:116:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25373:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25381:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25369:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25369:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a20746f6b656e4964206973206e6f74207661", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25385:34:9", + "type": "", + "value": "ERC721Staking: tokenId is not va" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25362:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "25362:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "25362:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "25441:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25449:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25437:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25437:15:9" + }, + { + "hexValue": "6c6964", + "kind": "string", + "nodeType": "YulLiteral", + "src": "25454:5:9", + "type": "", + "value": "lid" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25430:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "25430:30:9" + }, + "nodeType": "YulExpressionStatement", + "src": "25430:30:9" + } + ] + }, + "name": "store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "25343:6:9", + "type": "" + } + ], + "src": "25245:222:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25619:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25629:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25695:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25700:2:9", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25636:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "25636:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25629:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25801:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", + "nodeType": "YulIdentifier", + "src": "25712:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "25712:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "25712:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "25814:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25825:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25830:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25821:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "25821:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25814:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25607:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25615:3:9", + "type": "" + } + ], + "src": "25473:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26016:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26026:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26038:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26049:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26034:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26034:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26026:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26073:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26084:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26069:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26069:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26092:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26098:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "26088:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26088:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26062:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "26062:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "26062:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "26118:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26252:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26126:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "26126:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "26118:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25996:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "26011:4:9", + "type": "" + } + ], + "src": "25845:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26376:129:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26398:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26406:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26394:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26394:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a2075736572206973206e6f7420746865206f", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26410:34:9", + "type": "", + "value": "ERC721Staking: user is not the o" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26387:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "26387:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "26387:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "26466:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26474:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26462:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26462:15:9" + }, + { + "hexValue": "776e6572206f662074686973206e6674", + "kind": "string", + "nodeType": "YulLiteral", + "src": "26479:18:9", + "type": "", + "value": "wner of this nft" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "26455:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "26455:43:9" + }, + "nodeType": "YulExpressionStatement", + "src": "26455:43:9" + } + ] + }, + "name": "store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "26368:6:9", + "type": "" + } + ], + "src": "26270:235:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "26657:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "26667:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26733:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26738:2:9", + "type": "", + "value": "48" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "26674:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "26674:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26667:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26839:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", + "nodeType": "YulIdentifier", + "src": "26750:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "26750:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "26750:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "26852:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "26863:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26868:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26859:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "26859:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "26852:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "26645:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "26653:3:9", + "type": "" + } + ], + "src": "26511:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27054:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27064:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27076:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27087:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27072:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27072:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27064:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27111:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27122:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27107:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27107:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27130:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "27136:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27126:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27126:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27100:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "27100:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "27100:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "27156:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27290:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "27164:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "27164:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "27156:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "27034:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "27049:4:9", + "type": "" + } + ], + "src": "26883:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27352:261:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "27362:25:9", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27385:1:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27367:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "27367:20:9" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27362:1:9" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "27396:25:9", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27419:1:9" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "27401:17:9" + }, + "nodeType": "YulFunctionCall", + "src": "27401:20:9" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27396:1:9" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27559:22:9", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "27561:16:9" + }, + "nodeType": "YulFunctionCall", + "src": "27561:18:9" + }, + "nodeType": "YulExpressionStatement", + "src": "27561:18:9" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27480:1:9" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27487:66:9", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27555:1:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "27483:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27483:74:9" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "27477:2:9" + }, + "nodeType": "YulFunctionCall", + "src": "27477:81:9" + }, + "nodeType": "YulIf", + "src": "27474:107:9" + }, + { + "nodeType": "YulAssignment", + "src": "27591:16:9", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "27602:1:9" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "27605:1:9" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27598:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27598:9:9" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "27591:3:9" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "27339:1:9", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "27342:1:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "27348:3:9", + "type": "" + } + ], + "src": "27308:305:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "27725:124:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27747:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27755:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27743:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27743:14:9" + }, + { + "hexValue": "4552433732315374616b696e673a20636f6f6c646f776e2074696d6520697320", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27759:34:9", + "type": "", + "value": "ERC721Staking: cooldown time is " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27736:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "27736:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "27736:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "27815:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "27823:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "27811:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "27811:15:9" + }, + { + "hexValue": "6e6f742072656163686564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "27828:13:9", + "type": "", + "value": "not reached" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "27804:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "27804:38:9" + }, + "nodeType": "YulExpressionStatement", + "src": "27804:38:9" + } + ] + }, + "name": "store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "27717:6:9", + "type": "" + } + ], + "src": "27619:230:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28001:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28011:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28077:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28082:2:9", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28018:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "28018:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28011:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28183:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", + "nodeType": "YulIdentifier", + "src": "28094:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "28094:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "28094:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "28196:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "28207:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28212:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28203:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28203:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "28196:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "27989:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "27997:3:9", + "type": "" + } + ], + "src": "27855:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28398:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28408:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28420:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28431:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28416:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28416:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28408:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28455:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28466:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28451:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28451:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28474:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28480:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "28470:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28470:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "28444:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "28444:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "28444:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "28500:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28634:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "28508:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "28508:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28500:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28378:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28393:4:9", + "type": "" + } + ], + "src": "28227:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "28772:200:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "28782:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28794:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28805:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28790:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28790:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "28782:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "28862:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28875:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28886:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28871:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28871:17:9" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "28818:43:9" + }, + "nodeType": "YulFunctionCall", + "src": "28818:71:9" + }, + "nodeType": "YulExpressionStatement", + "src": "28818:71:9" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "28937:6:9" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "28950:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "28961:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "28946:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "28946:18:9" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "28899:37:9" + }, + "nodeType": "YulFunctionCall", + "src": "28899:66:9" + }, + "nodeType": "YulExpressionStatement", + "src": "28899:66:9" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bool__to_t_address_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "28736:9:9", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "28748:6:9", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "28756:6:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "28767:4:9", + "type": "" + } + ], + "src": "28652:320:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29084:119:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29106:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29114:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29102:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29102:14:9" + }, + { + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29118:34:9", + "type": "", + "value": "Ownable: new owner is the zero a" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29095:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "29095:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "29095:58:9" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "29174:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29182:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29170:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29170:15:9" + }, + { + "hexValue": "646472657373", + "kind": "string", + "nodeType": "YulLiteral", + "src": "29187:8:9", + "type": "", + "value": "ddress" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29163:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "29163:33:9" + }, + "nodeType": "YulExpressionStatement", + "src": "29163:33:9" + } + ] + }, + "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "29076:6:9", + "type": "" + } + ], + "src": "28978:225:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29355:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29365:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29431:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29436:2:9", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29372:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "29372:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29365:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29537:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "nodeType": "YulIdentifier", + "src": "29448:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "29448:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "29448:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "29550:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "29561:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29566:2:9", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29557:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29557:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "29550:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "29343:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "29351:3:9", + "type": "" + } + ], + "src": "29209:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "29752:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "29762:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29774:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29785:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29770:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29770:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29762:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29809:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29820:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29805:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29805:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29828:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29834:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "29824:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "29824:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29798:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "29798:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "29798:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "29854:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29988:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "29862:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "29862:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "29854:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "29732:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "29747:4:9", + "type": "" + } + ], + "src": "29581:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30112:76:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "30134:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30142:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30130:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "30130:14:9" + }, + { + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "30146:34:9", + "type": "", + "value": "Ownable: caller is not the owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30123:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "30123:58:9" + }, + "nodeType": "YulExpressionStatement", + "src": "30123:58:9" + } + ] + }, + "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "30104:6:9", + "type": "" + } + ], + "src": "30006:182:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30340:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30350:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30416:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30421:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30357:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "30357:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30350:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30522:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "nodeType": "YulIdentifier", + "src": "30433:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "30433:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "30433:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "30535:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "30546:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30551:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30542:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "30542:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "30535:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "30328:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "30336:3:9", + "type": "" + } + ], + "src": "30194:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "30737:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "30747:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30759:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30770:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30755:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "30755:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30747:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30794:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30805:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30790:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "30790:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30813:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30819:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "30809:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "30809:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30783:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "30783:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "30783:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "30839:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30973:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "30847:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "30847:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "30839:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "30717:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "30732:4:9", + "type": "" + } + ], + "src": "30566:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31097:75:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "31119:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31127:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31115:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "31115:14:9" + }, + { + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "kind": "string", + "nodeType": "YulLiteral", + "src": "31131:33:9", + "type": "", + "value": "ReentrancyGuard: reentrant call" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31108:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "31108:57:9" + }, + "nodeType": "YulExpressionStatement", + "src": "31108:57:9" + } + ] + }, + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "31089:6:9", + "type": "" + } + ], + "src": "30991:181:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31324:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31334:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31400:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31405:2:9", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31341:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "31341:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31334:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31506:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "nodeType": "YulIdentifier", + "src": "31417:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "31417:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "31417:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "31519:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "31530:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31535:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31526:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "31526:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "31519:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "31312:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "31320:3:9", + "type": "" + } + ], + "src": "31178:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "31721:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "31731:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31743:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31754:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31739:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "31739:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31731:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31778:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "31789:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "31774:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "31774:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31797:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "31803:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "31793:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "31793:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "31767:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "31767:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "31767:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "31823:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31957:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "31831:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "31831:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "31823:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "31701:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "31716:4:9", + "type": "" + } + ], + "src": "31550:419:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32081:60:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "32103:6:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32111:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32099:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "32099:14:9" + }, + { + "hexValue": "5061757361626c653a20706175736564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "32115:18:9", + "type": "", + "value": "Pausable: paused" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32092:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "32092:42:9" + }, + "nodeType": "YulExpressionStatement", + "src": "32092:42:9" + } + ] + }, + "name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "32073:6:9", + "type": "" + } + ], + "src": "31975:166:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32293:220:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32303:74:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32369:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32374:2:9", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32310:58:9" + }, + "nodeType": "YulFunctionCall", + "src": "32310:67:9" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32303:3:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32475:3:9" + } + ], + "functionName": { + "name": "store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "nodeType": "YulIdentifier", + "src": "32386:88:9" + }, + "nodeType": "YulFunctionCall", + "src": "32386:93:9" + }, + "nodeType": "YulExpressionStatement", + "src": "32386:93:9" + }, + { + "nodeType": "YulAssignment", + "src": "32488:19:9", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "32499:3:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32504:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32495:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "32495:12:9" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "32488:3:9" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "32281:3:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "32289:3:9", + "type": "" + } + ], + "src": "32147:366:9" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "32690:248:9", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "32700:26:9", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32712:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32723:2:9", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32708:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "32708:18:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32700:4:9" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32747:9:9" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "32758:1:9", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "32743:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "32743:17:9" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32766:4:9" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "32772:9:9" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "32762:3:9" + }, + "nodeType": "YulFunctionCall", + "src": "32762:20:9" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "32736:6:9" + }, + "nodeType": "YulFunctionCall", + "src": "32736:47:9" + }, + "nodeType": "YulExpressionStatement", + "src": "32736:47:9" + }, + { + "nodeType": "YulAssignment", + "src": "32792:139:9", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32926:4:9" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "32800:124:9" + }, + "nodeType": "YulFunctionCall", + "src": "32800:131:9" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "32792:4:9" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "32670:9:9", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "32685:4:9", + "type": "" + } + ], + "src": "32519: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", + "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", + "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/stake/ERC721Staking.sol", + "ast": { + "absolutePath": "project:/contracts/stake/ERC721Staking.sol", + "exportedSymbols": { + "Context": [ + 468 + ], + "ERC721Holder": [ + 446 + ], + "ERC721Staking": [ + 970 + ], + "IERC165": [ + 480 + ], + "IERC721": [ + 401 + ], + "IERC721Receiver": [ + 419 + ], + "Ownable": [ + 112 + ], + "Pausable": [ + 220 + ], + "ReentrancyGuard": [ + 285 + ] + }, + "id": 971, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 482, + "literals": [ + "solidity", + "0.8", + ".10" + ], + "nodeType": "PragmaDirective", + "src": "32:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "id": 483, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 402, + "src": "57:58:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "file": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "id": 484, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 447, + "src": "116:69:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 485, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 113, + "src": "186:52:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol", + "id": 486, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 286, + "src": "239:62:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/security/Pausable.sol", + "file": "@openzeppelin/contracts/security/Pausable.sol", + "id": 487, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 971, + "sourceUnit": 221, + "src": "302:55:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 488, + "name": "Ownable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 112, + "src": "385:7:8" + }, + "id": 489, + "nodeType": "InheritanceSpecifier", + "src": "385:7:8" + }, + { + "baseName": { + "id": 490, + "name": "ReentrancyGuard", + "nodeType": "IdentifierPath", + "referencedDeclaration": 285, + "src": "394:15:8" + }, + "id": 491, + "nodeType": "InheritanceSpecifier", + "src": "394:15:8" + }, + { + "baseName": { + "id": 492, + "name": "Pausable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 220, + "src": "411:8:8" + }, + "id": 493, + "nodeType": "InheritanceSpecifier", + "src": "411:8:8" + }, + { + "baseName": { + "id": 494, + "name": "ERC721Holder", + "nodeType": "IdentifierPath", + "referencedDeclaration": 446, + "src": "421:12:8" + }, + "id": 495, + "nodeType": "InheritanceSpecifier", + "src": "421:12:8" + } + ], + "canonicalName": "ERC721Staking", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 970, + "linearizedBaseContracts": [ + 970, + 446, + 419, + 220, + 285, + 112, + 468 + ], + "name": "ERC721Staking", + "nameLocation": "368:13:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "b8221bc4", + "id": 498, + "mutability": "mutable", + "name": "cooldownSeconds", + "nameLocation": "453:15:8", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "438:39:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "438:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "471:6:8", + "subdenomination": "days", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "canonicalName": "ERC721Staking.Staker", + "id": 509, + "members": [ + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "user", + "nameLocation": "510:4:8", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "502:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "502:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "nft", + "nameLocation": "528:3:8", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "520:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "520:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 504, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "545:7:8", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "537:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "537:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 506, + "mutability": "mutable", + "name": "start", + "nameLocation": "565:5:8", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "558:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 505, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "558:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "mutability": "mutable", + "name": "stakeTime", + "nameLocation": "583:9:8", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "576:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 507, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "576:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "name": "Staker", + "nameLocation": "489:6:8", + "nodeType": "StructDefinition", + "scope": 970, + "src": "482:115:8", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "550bd779", + "id": 516, + "mutability": "mutable", + "name": "stakingMap", + "nameLocation": "693:10:8", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "639:64:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", + "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker))" + }, + "typeName": { + "id": 515, + "keyType": { + "id": 510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "647:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "639:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$_$", + "typeString": "mapping(address => mapping(uint256 => struct ERC721Staking.Staker))" + }, + "valueType": { + "id": 514, + "keyType": { + "id": 511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "666:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "658:26:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker)" + }, + "valueType": { + "id": 513, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 512, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "677:6:8" + }, + "referencedDeclaration": 509, + "src": "677:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6d213f72", + "id": 520, + "mutability": "mutable", + "name": "erc721Supported", + "nameLocation": "770:15:8", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "738:47:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 519, + "keyType": { + "id": 517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "746:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "738:24:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 518, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "757:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f029b3b1", + "id": 524, + "mutability": "mutable", + "name": "periods", + "nameLocation": "864:7:8", + "nodeType": "VariableDeclaration", + "scope": 970, + "src": "833:38:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_bool_$", + "typeString": "mapping(uint64 => bool)" + }, + "typeName": { + "id": 523, + "keyType": { + "id": 521, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "841:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "833:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_bool_$", + "typeString": "mapping(uint64 => bool)" + }, + "valueType": { + "id": 522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "851:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 532, + "name": "Staked", + "nameLocation": "901:6:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 526, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nameLocation": "924:4:8", + "nodeType": "VariableDeclaration", + "scope": 532, + "src": "908:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "908:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "indexed": false, + "mutability": "mutable", + "name": "infos", + "nameLocation": "939:5:8", + "nodeType": "VariableDeclaration", + "scope": 532, + "src": "930:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker[]" + }, + "typeName": { + "baseType": { + "id": 528, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 527, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "930:6:8" + }, + "referencedDeclaration": 509, + "src": "930:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 529, + "nodeType": "ArrayTypeName", + "src": "930:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + }, + "visibility": "internal" + } + ], + "src": "907:38:8" + }, + "src": "895:51:8" + }, + { + "anonymous": false, + "id": 540, + "name": "Redeem", + "nameLocation": "976:6:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 534, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nameLocation": "999:4:8", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "983:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "983:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 538, + "indexed": false, + "mutability": "mutable", + "name": "infos", + "nameLocation": "1014:5:8", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1005:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker[]" + }, + "typeName": { + "baseType": { + "id": 536, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 535, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "1005:6:8" + }, + "referencedDeclaration": 509, + "src": "1005:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 537, + "nodeType": "ArrayTypeName", + "src": "1005:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + }, + "visibility": "internal" + } + ], + "src": "982:38:8" + }, + "src": "970:51:8" + }, + { + "anonymous": false, + "id": 546, + "name": "EditNFTSuppout", + "nameLocation": "1066:14:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 542, + "indexed": false, + "mutability": "mutable", + "name": "nftToken", + "nameLocation": "1089:8:8", + "nodeType": "VariableDeclaration", + "scope": 546, + "src": "1081:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1081:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 544, + "indexed": false, + "mutability": "mutable", + "name": "status", + "nameLocation": "1104:6:8", + "nodeType": "VariableDeclaration", + "scope": 546, + "src": "1099:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 543, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1099:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1080:31:8" + }, + "src": "1060:52:8" + }, + { + "anonymous": false, + "id": 552, + "name": "EditPeriods", + "nameLocation": "1150:11:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": false, + "mutability": "mutable", + "name": "period", + "nameLocation": "1169:6:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "1162:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 547, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1162:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": false, + "mutability": "mutable", + "name": "status", + "nameLocation": "1182:6:8", + "nodeType": "VariableDeclaration", + "scope": 552, + "src": "1177:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 549, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1177:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1161:28:8" + }, + "src": "1144:46:8" + }, + { + "anonymous": false, + "id": 558, + "name": "EditCooldownSeconds", + "nameLocation": "1236:19:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "indexed": false, + "mutability": "mutable", + "name": "oldVal", + "nameLocation": "1264:6:8", + "nodeType": "VariableDeclaration", + "scope": 558, + "src": "1256:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1256:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 556, + "indexed": false, + "mutability": "mutable", + "name": "newVal", + "nameLocation": "1280:6:8", + "nodeType": "VariableDeclaration", + "scope": 558, + "src": "1272:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1272:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1255:32:8" + }, + "src": "1230:58:8" + }, + { + "body": { + "id": 752, + "nodeType": "Block", + "src": "1443:1157:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 575, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1464:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1464:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 577, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "1479:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1479:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1464:30:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d20746f6b656e496473206c656e677468", + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1502:47:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6", + "typeString": "literal_string \"ERC721Staking: nfts length != tokenIds length\"" + }, + "value": "ERC721Staking: nfts length != tokenIds length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b0c1161164deec36770daedec37d0a1621b01f976cb02280302390d5f4db21c6", + "typeString": "literal_string \"ERC721Staking: nfts length != tokenIds length\"" + } + ], + "id": 574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1449:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1449:106:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 582, + "nodeType": "ExpressionStatement", + "src": "1449:106:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 584, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1576:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1576:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 586, + "name": "staketimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "1591:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_calldata_ptr", + "typeString": "uint64[] calldata" + } + }, + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1591:17:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1576:32:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d207374616b6574696d6573206c656e677468", + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1616:49:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69", + "typeString": "literal_string \"ERC721Staking: nfts length != staketimes length\"" + }, + "value": "ERC721Staking: nfts length != staketimes length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b2cf6755e4983bc4b48fc32d9db705a2d3ab7b82498bdc126bd22ded1b7fbd69", + "typeString": "literal_string \"ERC721Staking: nfts length != staketimes length\"" + } + ], + "id": 583, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1561:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1561:110:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 591, + "nodeType": "ExpressionStatement", + "src": "1561:110:8" + }, + { + "assignments": [ + 593 + ], + "declarations": [ + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "account", + "nameLocation": "1686:7:8", + "nodeType": "VariableDeclaration", + "scope": 752, + "src": "1678:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1678:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 596, + "initialValue": { + "expression": { + "id": 594, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1696:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1696:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1678:28:8" + }, + { + "assignments": [ + 601 + ], + "declarations": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "_beginTimes", + "nameLocation": "1728:11:8", + "nodeType": "VariableDeclaration", + "scope": 752, + "src": "1712:27:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[]" + }, + "typeName": { + "baseType": { + "id": 599, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1712:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 600, + "nodeType": "ArrayTypeName", + "src": "1712:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", + "typeString": "uint64[]" + } + }, + "visibility": "internal" + } + ], + "id": 608, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 605, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1755:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1742:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint64_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint64[] memory)" + }, + "typeName": { + "baseType": { + "id": 602, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1746:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 603, + "nodeType": "ArrayTypeName", + "src": "1746:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", + "typeString": "uint64[]" + } + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1742:25:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1712:55:8" + }, + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "_stakeTimes", + "nameLocation": "1789:11:8", + "nodeType": "VariableDeclaration", + "scope": 752, + "src": "1773:27:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[]" + }, + "typeName": { + "baseType": { + "id": 611, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1773:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 612, + "nodeType": "ArrayTypeName", + "src": "1773:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", + "typeString": "uint64[]" + } + }, + "visibility": "internal" + } + ], + "id": 620, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 617, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1816:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1816:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1803:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint64_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint64[] memory)" + }, + "typeName": { + "baseType": { + "id": 614, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1807:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 615, + "nodeType": "ArrayTypeName", + "src": "1807:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", + "typeString": "uint64[]" + } + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1803:25:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1773:55:8" + }, + { + "assignments": [ + 625 + ], + "declarations": [ + { + "constant": false, + "id": 625, + "mutability": "mutable", + "name": "_infos", + "nameLocation": "1850:6:8", + "nodeType": "VariableDeclaration", + "scope": 752, + "src": "1834:22:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker[]" + }, + "typeName": { + "baseType": { + "id": 623, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 622, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "1834:6:8" + }, + "referencedDeclaration": 509, + "src": "1834:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 624, + "nodeType": "ArrayTypeName", + "src": "1834:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + }, + "visibility": "internal" + } + ], + "id": 633, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 630, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1872:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1872:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1859: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": 627, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 626, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "1863:6:8" + }, + "referencedDeclaration": 509, + "src": "1863:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 628, + "nodeType": "ArrayTypeName", + "src": "1863:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1859:25:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1834:50:8" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "1932:630:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 646, + "name": "erc721Supported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "1957:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 650, + "indexExpression": { + "baseExpression": { + "id": 647, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1973:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 649, + "indexExpression": { + "id": 648, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "1978:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1973:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1957:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1985:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1957:32:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a206e6674206973206e6f7420737570706f72746564", + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1999:37:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd", + "typeString": "literal_string \"ERC721Staking: nft is not supported\"" + }, + "value": "ERC721Staking: nft is not supported" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cea95b05c59f550bed2f7cea019809c60a711e17ca6f7f5b6c713a130fad09fd", + "typeString": "literal_string \"ERC721Staking: nft is not supported\"" + } + ], + "id": 645, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "1940:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:104:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 655, + "nodeType": "ExpressionStatement", + "src": "1940:104:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 657, + "name": "periods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "2070:7:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_bool_$", + "typeString": "mapping(uint64 => bool)" + } + }, + "id": 661, + "indexExpression": { + "baseExpression": { + "id": 658, + "name": "staketimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "2078:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_calldata_ptr", + "typeString": "uint64[] calldata" + } + }, + "id": 660, + "indexExpression": { + "id": 659, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2089:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2078:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2070:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "74727565", + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2096:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2070:30:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a207374616b6574696d65206973206e6f7420737570706f72746564", + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2110:43:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f", + "typeString": "literal_string \"ERC721Staking: staketime is not supported\"" + }, + "value": "ERC721Staking: staketime is not supported" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5d01c402e0900585999e0ea524002fab18cbfdbb55bf7aae0e822f5598066d4f", + "typeString": "literal_string \"ERC721Staking: staketime is not supported\"" + } + ], + "id": 656, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2053:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2053:108:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 666, + "nodeType": "ExpressionStatement", + "src": "2053:108:8" + }, + { + "expression": { + "arguments": [ + { + "id": 673, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "2204:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 676, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2221:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeString": "contract ERC721Staking" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeString": "contract ERC721Staking" + } + ], + "id": 675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2213:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2213:7:8", + "typeDescriptions": {} + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2213:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 678, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "2228:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 680, + "indexExpression": { + "id": 679, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2237:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2228:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 668, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2178:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 670, + "indexExpression": { + "id": 669, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2183:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2178:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 667, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 401, + "src": "2170:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$401_$", + "typeString": "type(contract IERC721)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2170:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$401", + "typeString": "contract IERC721" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 356, + "src": "2170:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2170:70:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 682, + "nodeType": "ExpressionStatement", + "src": "2170:70:8" + }, + { + "expression": { + "id": 691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 683, + "name": "_beginTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "2248:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "id": 685, + "indexExpression": { + "id": 684, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2260:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2248:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 688, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "2272:5:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2272:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2265:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 686, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2265:6:8", + "typeDescriptions": {} + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2265:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2248:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 692, + "nodeType": "ExpressionStatement", + "src": "2248:40:8" + }, + { + "expression": { + "id": 703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 693, + "name": "_stakeTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "2296:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "id": 695, + "indexExpression": { + "id": 694, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2308:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2296:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "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", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2296:47:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 704, + "nodeType": "ExpressionStatement", + "src": "2296:47:8" + }, + { + "expression": { + "id": 729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 705, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "2351: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, + "indexExpression": { + "baseExpression": { + "id": 706, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2362:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 708, + "indexExpression": { + "id": 707, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2367:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2362:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2351:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 713, + "indexExpression": { + "baseExpression": { + "id": 709, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "2371:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 711, + "indexExpression": { + "id": 710, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2380:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2371:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2351:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 715, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "2402:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "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, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "2436:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 721, + "indexExpression": { + "id": 720, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2445:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2436:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 722, + "name": "_beginTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "2457:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "id": 724, + "indexExpression": { + "id": 723, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2469:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2457:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "baseExpression": { + "id": 725, + "name": "_stakeTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "2481:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", + "typeString": "uint64[] memory" + } + }, + "id": 727, + "indexExpression": { + "id": 726, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2493:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2481:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 714, + "name": "Staker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "2386:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Staker_$509_storage_ptr_$", + "typeString": "type(struct ERC721Staking.Staker storage pointer)" + } + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2386:117:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory" + } + }, + "src": "2351:152:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "id": 730, + "nodeType": "ExpressionStatement", + "src": "2351:152:8" + }, + { + "expression": { + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 731, + "name": "_infos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "2511:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + }, + "id": 733, + "indexExpression": { + "id": 732, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2518:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2511:9:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "baseExpression": { + "id": 734, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "2523: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, + "indexExpression": { + "baseExpression": { + "id": 735, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "2534:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 737, + "indexExpression": { + "id": 736, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2539:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2534:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2523:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 742, + "indexExpression": { + "baseExpression": { + "id": 739, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 564, + "src": "2543:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 741, + "indexExpression": { + "id": 740, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2552:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2543:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2523:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "src": "2511:44:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "2511:44:8" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 638, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "1910:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 639, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "1914:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1914:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1910:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 746, + "initializationExpression": { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "i", + "nameLocation": "1903:1:8", + "nodeType": "VariableDeclaration", + "scope": 746, + "src": "1895:9:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1895:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 637, + "initialValue": { + "hexValue": "30", + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1907:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1895:13:8" + }, + "loopExpression": { + "expression": { + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1927:3:8", + "subExpression": { + "id": 642, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "1927:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 644, + "nodeType": "ExpressionStatement", + "src": "1927:3:8" + }, + "nodeType": "ForStatement", + "src": "1890:672:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 748, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "2579:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 749, + "name": "_infos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "2588:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + ], + "id": 747, + "name": "Staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "2572: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, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2572:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 751, + "nodeType": "EmitStatement", + "src": "2567:28:8" + } + ] + }, + "functionSelector": "44b780f8", + "id": 753, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 570, + "kind": "modifierInvocation", + "modifierName": { + "id": 569, + "name": "nonReentrant", + "nodeType": "IdentifierPath", + "referencedDeclaration": 250, + "src": "1416:12:8" + }, + "nodeType": "ModifierInvocation", + "src": "1416:12:8" + }, + { + "id": 572, + "kind": "modifierInvocation", + "modifierName": { + "id": 571, + "name": "whenNotPaused", + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "1429:13:8" + }, + "nodeType": "ModifierInvocation", + "src": "1429:13:8" + } + ], + "name": "stake", + "nameLocation": "1301:5:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 561, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "1331:4:8", + "nodeType": "VariableDeclaration", + "scope": 753, + "src": "1312:23:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1312:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 560, + "nodeType": "ArrayTypeName", + "src": "1312:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 564, + "mutability": "mutable", + "name": "tokenIds", + "nameLocation": "1360:8:8", + "nodeType": "VariableDeclaration", + "scope": 753, + "src": "1341:27:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 562, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1341:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 563, + "nodeType": "ArrayTypeName", + "src": "1341:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "staketimes", + "nameLocation": "1392:10:8", + "nodeType": "VariableDeclaration", + "scope": 753, + "src": "1374:28:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_calldata_ptr", + "typeString": "uint64[]" + }, + "typeName": { + "baseType": { + "id": 565, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1374:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 566, + "nodeType": "ArrayTypeName", + "src": "1374:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", + "typeString": "uint64[]" + } + }, + "visibility": "internal" + } + ], + "src": "1306:100:8" + }, + "returnParameters": { + "id": 573, + "nodeType": "ParameterList", + "parameters": [], + "src": "1443:0:8" + }, + "scope": 970, + "src": "1292:1308:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 904, + "nodeType": "Block", + "src": "2708:952:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 765, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "2729:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2729:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 767, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "2744:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2744:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2729:30:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a206e667473206c656e67746820213d20696473206c656e677468", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2767:42:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", + "typeString": "literal_string \"ERC721Staking: nfts length != ids length\"" + }, + "value": "ERC721Staking: nfts length != ids length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_794bf8af8e333b1b48e07912db9c542ed1792a405414b33d7bc447b537a008b2", + "typeString": "literal_string \"ERC721Staking: nfts length != ids length\"" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2714:101:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "2714:101:8" + }, + { + "assignments": [ + 774 + ], + "declarations": [ + { + "constant": false, + "id": 774, + "mutability": "mutable", + "name": "account", + "nameLocation": "2829:7:8", + "nodeType": "VariableDeclaration", + "scope": 904, + "src": "2821:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2821:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 777, + "initialValue": { + "expression": { + "id": 775, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2839:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2839:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2821:28:8" + }, + { + "assignments": [ + 782 + ], + "declarations": [ + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "_infos", + "nameLocation": "2901:6:8", + "nodeType": "VariableDeclaration", + "scope": 904, + "src": "2885:22:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker[]" + }, + "typeName": { + "baseType": { + "id": 780, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 779, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "2885:6:8" + }, + "referencedDeclaration": 509, + "src": "2885:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 781, + "nodeType": "ArrayTypeName", + "src": "2885:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + }, + "visibility": "internal" + } + ], + "id": 790, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 787, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "2923:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2923:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2910: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, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 783, + "name": "Staker", + "nodeType": "IdentifierPath", + "referencedDeclaration": 509, + "src": "2914:6:8" + }, + "referencedDeclaration": 509, + "src": "2914:6:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage_ptr", + "typeString": "struct ERC721Staking.Staker" + } + }, + "id": 785, + "nodeType": "ArrayTypeName", + "src": "2914:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_storage_$dyn_storage_ptr", + "typeString": "struct ERC721Staking.Staker[]" + } + } + }, + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2910:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2885:54:8" + }, + { + "body": { + "id": 897, + "nodeType": "Block", + "src": "2991:630:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 803, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "3016: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, + "indexExpression": { + "baseExpression": { + "id": 804, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3027:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 806, + "indexExpression": { + "id": 805, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3032:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3027:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3016:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 811, + "indexExpression": { + "baseExpression": { + "id": 808, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3036:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 810, + "indexExpression": { + "id": 809, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3045:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3036:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3016:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "id": 812, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "user", + "nodeType": "MemberAccess", + "referencedDeclaration": 500, + "src": "3016:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3065:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3057:7:8", + "typeDescriptions": {} + } + }, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3057:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3016:51:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a20746f6b656e4964206973206e6f742076616c6964", + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3077:37:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", + "typeString": "literal_string \"ERC721Staking: tokenId is not valid\"" + }, + "value": "ERC721Staking: tokenId is not valid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fbe7c99a08b08cc86681561e29696b49b36ff6980df6ecdabaa7119c52f60fc7", + "typeString": "literal_string \"ERC721Staking: tokenId is not valid\"" + } + ], + "id": 802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2999:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2999:123:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 820, + "nodeType": "ExpressionStatement", + "src": "2999:123:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 822, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "3147: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, + "indexExpression": { + "baseExpression": { + "id": 823, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3158:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 825, + "indexExpression": { + "id": 824, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3163:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3158:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3147:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 830, + "indexExpression": { + "baseExpression": { + "id": 827, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3167:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 829, + "indexExpression": { + "id": 828, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3176:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3167:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3147:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "id": 831, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "user", + "nodeType": "MemberAccess", + "referencedDeclaration": 500, + "src": "3147:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 832, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "3188:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3147:48:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a2075736572206973206e6f7420746865206f776e6572206f662074686973206e6674", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3205:50:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", + "typeString": "literal_string \"ERC721Staking: user is not the owner of this nft\"" + }, + "value": "ERC721Staking: user is not the owner of this nft" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a16b24acf6240e469dd3112365d50f7f2dda4c76b50622b56d24bc25cd74f22", + "typeString": "literal_string \"ERC721Staking: user is not the owner of this nft\"" + } + ], + "id": 821, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3130:133:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 836, + "nodeType": "ExpressionStatement", + "src": "3130:133:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 838, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "3288: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, + "indexExpression": { + "baseExpression": { + "id": 839, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3299:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 841, + "indexExpression": { + "id": 840, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3304:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3299:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3288:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 846, + "indexExpression": { + "baseExpression": { + "id": 843, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3308:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3317:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3308:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3288:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "id": 847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "start", + "nodeType": "MemberAccess", + "referencedDeclaration": 506, + "src": "3288:38:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 848, + "name": "cooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "3329:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3288:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 850, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3358:5:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3358:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3288:85:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732315374616b696e673a20636f6f6c646f776e2074696d65206973206e6f742072656163686564", + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3383:45:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", + "typeString": "literal_string \"ERC721Staking: cooldown time is not reached\"" + }, + "value": "ERC721Staking: cooldown time is not reached" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_59884279c09f62a556d5e709176c904ad281f90881319154834cacb388946505", + "typeString": "literal_string \"ERC721Staking: cooldown time is not reached\"" + } + ], + "id": 837, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3271:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3271:165:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 855, + "nodeType": "ExpressionStatement", + "src": "3271:165:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 864, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "3487:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeString": "contract ERC721Staking" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC721Staking_$970", + "typeString": "contract ERC721Staking" + } + ], + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3479:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 862, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3479:7:8", + "typeDescriptions": {} + } + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3479:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 866, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "3494:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 867, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3503:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 869, + "indexExpression": { + "id": 868, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3512:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3503:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 857, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3453:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 859, + "indexExpression": { + "id": 858, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3458:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3453:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 856, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 401, + "src": "3445:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$401_$", + "typeString": "type(contract IERC721)" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3445:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$401", + "typeString": "contract IERC721" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 356, + "src": "3445:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3445:70:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 871, + "nodeType": "ExpressionStatement", + "src": "3445:70:8" + }, + { + "expression": { + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 872, + "name": "_infos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "3523:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + }, + "id": 874, + "indexExpression": { + "id": 873, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3530:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3523:9:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "baseExpression": { + "id": 875, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "3535: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, + "indexExpression": { + "baseExpression": { + "id": 876, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3546:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 878, + "indexExpression": { + "id": 877, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3551:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3546:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3535:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 883, + "indexExpression": { + "baseExpression": { + "id": 880, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3555:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 882, + "indexExpression": { + "id": 881, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3564:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3555:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3535:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "src": "3523:44:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory" + } + }, + "id": 885, + "nodeType": "ExpressionStatement", + "src": "3523:44:8" + }, + { + "expression": { + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3575:39:8", + "subExpression": { + "baseExpression": { + "baseExpression": { + "id": 886, + "name": "stakingMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "3582: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, + "indexExpression": { + "baseExpression": { + "id": 887, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "3593:4:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 889, + "indexExpression": { + "id": 888, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3598:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3593:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3582:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Staker_$509_storage_$", + "typeString": "mapping(uint256 => struct ERC721Staking.Staker storage ref)" + } + }, + "id": 894, + "indexExpression": { + "baseExpression": { + "id": 891, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "3602:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 893, + "indexExpression": { + "id": 892, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3611:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3602:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3582:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Staker_$509_storage", + "typeString": "struct ERC721Staking.Staker storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 896, + "nodeType": "ExpressionStatement", + "src": "3575:39:8" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 795, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2965:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 796, + "name": "tokenIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "2969:8:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2969:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2965:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 898, + "initializationExpression": { + "assignments": [ + 792 + ], + "declarations": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "i", + "nameLocation": "2958:1:8", + "nodeType": "VariableDeclaration", + "scope": 898, + "src": "2950:9:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2950:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 794, + "initialValue": { + "hexValue": "30", + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2962:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2950:13:8" + }, + "loopExpression": { + "expression": { + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2986:3:8", + "subExpression": { + "id": 799, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2986:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 801, + "nodeType": "ExpressionStatement", + "src": "2986:3:8" + }, + "nodeType": "ForStatement", + "src": "2945:676:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 900, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "3639:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 901, + "name": "_infos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "3648:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_struct$_Staker_$509_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ERC721Staking.Staker memory[] memory" + } + ], + "id": 899, + "name": "Redeem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3632: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, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3632:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 903, + "nodeType": "EmitStatement", + "src": "3627:28:8" + } + ] + }, + "functionSelector": "53d190cf", + "id": 905, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 762, + "kind": "modifierInvocation", + "modifierName": { + "id": 761, + "name": "nonReentrant", + "nodeType": "IdentifierPath", + "referencedDeclaration": 250, + "src": "2695:12:8" + }, + "nodeType": "ModifierInvocation", + "src": "2695:12:8" + } + ], + "name": "redeem", + "nameLocation": "2613:6:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 756, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "2644:4:8", + "nodeType": "VariableDeclaration", + "scope": 905, + "src": "2625:23:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2625:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 755, + "nodeType": "ArrayTypeName", + "src": "2625:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 759, + "mutability": "mutable", + "name": "tokenIds", + "nameLocation": "2673:8:8", + "nodeType": "VariableDeclaration", + "scope": 905, + "src": "2654:27:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2654:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 758, + "nodeType": "ArrayTypeName", + "src": "2654:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2619:66:8" + }, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [], + "src": "2708:0:8" + }, + "scope": 970, + "src": "2604:1056:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 926, + "nodeType": "Block", + "src": "3799:88:8", + "statements": [ + { + "expression": { + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 915, + "name": "erc721Supported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "3805:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 917, + "indexExpression": { + "id": 916, + "name": "nftToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "3821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3805:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 918, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "3833:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3805:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 920, + "nodeType": "ExpressionStatement", + "src": "3805:34:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 922, + "name": "nftToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "3865:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 923, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "3875:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 921, + "name": "EditNFTSuppout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 546, + "src": "3850:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,bool)" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3850:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 925, + "nodeType": "EmitStatement", + "src": "3845:37:8" + } + ] + }, + "documentation": { + "id": 906, + "nodeType": "StructuredDocumentation", + "src": "3664:41:8", + "text": " @dev update ERC721 support" + }, + "functionSelector": "595c1eff", + "id": 927, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 913, + "kind": "modifierInvocation", + "modifierName": { + "id": 912, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "3789:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "3789:9:8" + } + ], + "name": "updateERC721Support", + "nameLocation": "3717:19:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 908, + "mutability": "mutable", + "name": "nftToken", + "nameLocation": "3750:8:8", + "nodeType": "VariableDeclaration", + "scope": 927, + "src": "3742:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 907, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 910, + "mutability": "mutable", + "name": "status", + "nameLocation": "3769:6:8", + "nodeType": "VariableDeclaration", + "scope": 927, + "src": "3764:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 909, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3764:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3736:43:8" + }, + "returnParameters": { + "id": 914, + "nodeType": "ParameterList", + "parameters": [], + "src": "3799:0:8" + }, + "scope": 970, + "src": "3708:179:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 947, + "nodeType": "Block", + "src": "3961:73:8", + "statements": [ + { + "expression": { + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 936, + "name": "periods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3967:7:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_bool_$", + "typeString": "mapping(uint64 => bool)" + } + }, + "id": 938, + "indexExpression": { + "id": 937, + "name": "period", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 929, + "src": "3975:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3967:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 939, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 931, + "src": "3985:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3967:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 941, + "nodeType": "ExpressionStatement", + "src": "3967:24:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 943, + "name": "period", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 929, + "src": "4014:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 944, + "name": "status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 931, + "src": "4022:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 942, + "name": "EditPeriods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "4002:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool)" + } + }, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4002:27:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 946, + "nodeType": "EmitStatement", + "src": "3997:32:8" + } + ] + }, + "functionSelector": "2e167f83", + "id": 948, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 934, + "kind": "modifierInvocation", + "modifierName": { + "id": 933, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "3951:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "3951:9:8" + } + ], + "name": "updatePeriods", + "nameLocation": "3900:13:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 929, + "mutability": "mutable", + "name": "period", + "nameLocation": "3921:6:8", + "nodeType": "VariableDeclaration", + "scope": 948, + "src": "3914:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 928, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3914:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 931, + "mutability": "mutable", + "name": "status", + "nameLocation": "3934:6:8", + "nodeType": "VariableDeclaration", + "scope": 948, + "src": "3929:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 930, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3929:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3913:28:8" + }, + "returnParameters": { + "id": 935, + "nodeType": "ParameterList", + "parameters": [], + "src": "3961:0:8" + }, + "scope": 970, + "src": "3891:143:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 968, + "nodeType": "Block", + "src": "4114:139:8", + "statements": [ + { + "assignments": [ + 956 + ], + "declarations": [ + { + "constant": false, + "id": 956, + "mutability": "mutable", + "name": "oldVal", + "nameLocation": "4128:6:8", + "nodeType": "VariableDeclaration", + "scope": 968, + "src": "4120:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4120:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 958, + "initialValue": { + "id": 957, + "name": "cooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "4137:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4120:32:8" + }, + { + "expression": { + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 959, + "name": "cooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "4158:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 960, + "name": "_cooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "4176:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4158:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 962, + "nodeType": "ExpressionStatement", + "src": "4158:34:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 964, + "name": "oldVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 956, + "src": "4223:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 965, + "name": "_cooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "4231:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 963, + "name": "EditCooldownSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "4203:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4203:45:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 967, + "nodeType": "EmitStatement", + "src": "4198:50:8" + } + ] + }, + "functionSelector": "1f4fa1c3", + "id": 969, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 953, + "kind": "modifierInvocation", + "modifierName": { + "id": 952, + "name": "onlyOwner", + "nodeType": "IdentifierPath", + "referencedDeclaration": 31, + "src": "4104:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "4104:9:8" + } + ], + "name": "updateCooldownSeconds", + "nameLocation": "4047:21:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 950, + "mutability": "mutable", + "name": "_cooldownSeconds", + "nameLocation": "4077:16:8", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "4069:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4069:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4068:26:8" + }, + "returnParameters": { + "id": 954, + "nodeType": "ParameterList", + "parameters": [], + "src": "4114:0:8" + }, + "scope": 970, + "src": "4038:215:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 971, + "src": "359:3896:8", + "usedErrors": [] + } + ], + "src": "32:4224:8" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.11", + "updatedAt": "2023-08-23T03:20:10.716Z", + "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 + } +} \ No newline at end of file diff --git a/contracts/stake/ERC721Staking.sol b/contracts/stake/ERC721Staking.sol new file mode 100644 index 0000000..ad2b7b2 --- /dev/null +++ b/contracts/stake/ERC721Staking.sol @@ -0,0 +1,136 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.10; + +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; +import "@openzeppelin/contracts/security/Pausable.sol"; + +contract ERC721Staking is Ownable, ReentrancyGuard, Pausable, ERC721Holder { + uint256 public cooldownSeconds = 1 days; + + struct Staker { + address user; + address nft; + uint256 tokenId; + uint64 start; + uint64 stakeTime; + } + // nft address => token id => Staker + mapping(address => mapping(uint256 => Staker)) public stakingMap; + // User-selectable stake NFT + mapping(address => bool) public erc721Supported; + // User-selectable stake time, in seconds + mapping(uint64 => bool) public periods; + // event of stake + event Staked(address indexed user, Staker[] infos); + // event of redeem + event Redeem(address indexed user, Staker[] infos); + // event of update ERC721 support + event EditNFTSuppout(address nftToken, bool status); + // event of update periods + event EditPeriods(uint64 period, bool status); + // event of update cooldownSeconds + event EditCooldownSeconds(uint256 oldVal, uint256 newVal); + + function stake( + address[] calldata nfts, + uint256[] calldata tokenIds, + uint64[] calldata staketimes + ) external nonReentrant whenNotPaused { + require( + nfts.length == tokenIds.length, + "ERC721Staking: nfts length != tokenIds length" + ); + require( + nfts.length == staketimes.length, + "ERC721Staking: nfts length != staketimes length" + ); + + address account = msg.sender; + uint64[] memory _beginTimes = new uint64[](nfts.length); + uint64[] memory _stakeTimes = new uint64[](nfts.length); + Staker[] memory _infos = new Staker[](nfts.length); + for (uint256 i = 0; i < nfts.length; i++) { + require( + erc721Supported[nfts[i]] == true, + "ERC721Staking: nft is not supported" + ); + + require( + periods[staketimes[i]] == true, + "ERC721Staking: staketime is not supported" + ); + + IERC721(nfts[i]).safeTransferFrom(account, address(this), tokenIds[i]); + _beginTimes[i] = uint64(block.timestamp); + _stakeTimes[i] = _beginTimes[i] + staketimes[i]; + stakingMap[nfts[i]][tokenIds[i]] = Staker( + account, + nfts[i], + tokenIds[i], + _beginTimes[i], + _stakeTimes[i] + ); + _infos[i] = stakingMap[nfts[i]][tokenIds[i]]; + } + emit Staked(account, _infos); + } + + function redeem( + address[] calldata nfts, + uint256[] calldata tokenIds + ) external nonReentrant { + require( + nfts.length == tokenIds.length, + "ERC721Staking: nfts length != ids length" + ); + address account = msg.sender; + // check if ids are valid + Staker[] memory _infos = new Staker[](tokenIds.length); + for (uint256 i = 0; i < tokenIds.length; i++) { + require( + stakingMap[nfts[i]][tokenIds[i]].user != address(0), + "ERC721Staking: tokenId is not valid" + ); + require( + stakingMap[nfts[i]][tokenIds[i]].user == account, + "ERC721Staking: user is not the owner of this nft" + ); + require( + stakingMap[nfts[i]][tokenIds[i]].start + cooldownSeconds <= + block.timestamp, + "ERC721Staking: cooldown time is not reached" + ); + + IERC721(nfts[i]).safeTransferFrom(address(this), account, tokenIds[i]); + _infos[i] = stakingMap[nfts[i]][tokenIds[i]]; + delete stakingMap[nfts[i]][tokenIds[i]]; + } + + emit Redeem(account, _infos); + } + + /** + * @dev update ERC721 support + */ + function updateERC721Support( + address nftToken, + bool status + ) external onlyOwner { + erc721Supported[nftToken] = status; + emit EditNFTSuppout(nftToken, status); + } + + function updatePeriods(uint64 period, bool status) external onlyOwner { + periods[period] = status; + emit EditPeriods(period, status); + } + + function updateCooldownSeconds(uint256 _cooldownSeconds) external onlyOwner { + uint256 oldVal = cooldownSeconds; + cooldownSeconds = _cooldownSeconds; + emit EditCooldownSeconds(oldVal, _cooldownSeconds); + } +} diff --git a/contracts/stake/TokenStaking.sol b/contracts/stake/TokenStaking.sol new file mode 100644 index 0000000..8aeea2f --- /dev/null +++ b/contracts/stake/TokenStaking.sol @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.10; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; +import "@openzeppelin/contracts/security/Pausable.sol"; + +contract TokenStaking is Ownable, ReentrancyGuard, Pausable { + using SafeERC20 for IERC20; + + uint256 public cooldownSeconds = 1 days; + + uint256 orderIndex; + + struct Staker { + address user; + address token; + uint256 amount; + uint64 start; + uint64 stakeTime; + } + + mapping(uint256 => Staker) public stakingMap; + + // User-selectable stake time, in seconds + mapping(uint64 => bool) public periods; + // User-selectable stake token + mapping(address => bool) public erc20Supported; + + event Staked(address indexed user, Staker info); + + event Redeem(address indexed user, Staker[] infos); + + event EditTokenSuppout(address token, bool status); + + constructor() {} + + function stake( + address token, + uint256 amount, + uint64 staketime + ) external nonReentrant whenNotPaused { + require(amount > 0, "TokenStaking: amount is 0"); + require( + periods[staketime] == true, + "TokenStaking: staketime is not supported" + ); + require( + erc20Supported[token] == true, + "TokenStaking: token is not supported" + ); + address to = msg.sender; + + require( + IERC20(token).balanceOf(_msgSender()) >= amount, + "TokenStaking: user doesn't have enough token to buy this item" + ); + require( + IERC20(token).allowance(_msgSender(), address(this)) >= amount, + "TokenStaking: user doesn't approve TokenStaking to spend amount" + ); + uint64 _begin = uint64(block.timestamp); + uint64 _staketime = _begin + staketime; + orderIndex += 1; + stakingMap[orderIndex] = Staker(to, token, amount, _begin, _staketime); + IERC20(token).safeTransferFrom(to, address(this), amount); + emit Staked(to, stakingMap[orderIndex]); + } + + function redeem( + address[] calldata tokens, + uint256[] calldata ids + ) external nonReentrant { + require( + tokens.length == ids.length, + "TokenStaking: tokens length != ids length" + ); + address to = msg.sender; + uint256 amount = 0; + // check if ids are valid + Staker[] memory _infos = new Staker[](ids.length); + for (uint256 i = 0; i < ids.length; i++) { + require(stakingMap[ids[i]].amount > 0, "TokenStaking: id is not valid"); + require( + stakingMap[ids[i]].start + cooldownSeconds <= block.timestamp, + "TokenStaking: cooldown time is not reached" + ); + amount += stakingMap[ids[i]].amount; + _infos[i] = stakingMap[ids[i]]; + IERC20(stakingMap[ids[i]].token).safeTransfer(to, amount); + delete stakingMap[ids[i]]; + } + + emit Redeem(to, _infos); + } + + function updatePeriods(uint64 period, bool status) external onlyOwner { + periods[period] = status; + } + + /** + * @dev update ERC721 support + */ + function updateERC20Support(address token, bool status) external onlyOwner { + erc20Supported[token] = status; + emit EditTokenSuppout(token, status); + } +} diff --git a/migrations/9_deploy_stake.js b/migrations/9_deploy_stake.js new file mode 100644 index 0000000..b8ea650 --- /dev/null +++ b/migrations/9_deploy_stake.js @@ -0,0 +1,40 @@ +const base = require("../scripts/base"); +const ERC721Staking = artifacts.require("stake/ERC721Staking"); + +module.exports = async function (deployer, network, accounts) { + await deployer.deploy(ERC721Staking); + const stakeInstance = await ERC721Staking.deployed(); + if (stakeInstance) { + console.log("ERC721Staking successfully deployed."); + console.log("address: " + stakeInstance.address); + } + base.updateArray({ + name: "ERC721Staking", + type: "logic", + json: "assets/contracts/ERC721Staking.json", + address: stakeInstance.address, + network, + }); + + const nfts = [ + "0xae37bb7BcA26Bab9a11D8BaE8fdB97f63b82c189", + "0xEbC170185ad614C05Af38C820020b70E458717F5", + "0x2d3Afa678F777Df6b59186A54E5427c3527C637c", + ]; + for (let i = 0; i < nfts.length; i++) { + await stakeInstance.updateERC721Support(nfts[i], true); + console.log(`success add erc721 support for ${nfts[i]}`); + } + const DAYSECONDS = 24 * 60 * 60; + const periods = [ + 30 * DAYSECONDS, // 1 month 2592000 + 91 * DAYSECONDS, // 3 months 7862400 + 182 * DAYSECONDS, // 6 months 15724800 + 365 * DAYSECONDS, // 1 year 31536000 + 730 * DAYSECONDS, // 2 years 63072000 + ]; + for (let i = 0; i < periods.length; i++) { + await stakeInstance.updatePeriods(periods[i], true); + console.log(`success add period ${periods[i]}`); + } +}; diff --git a/out_arbitrum_one_release.json b/out_arbitrum_one_release.json index 0954d91..f42f156 100644 --- a/out_arbitrum_one_release.json +++ b/out_arbitrum_one_release.json @@ -63,7 +63,7 @@ "name": "BEMultiSigWallet", "type": "logic", "json": "assets/contracts/BEMultiSigWallet.json", - "address": "0x3Cd052Cc25358DB844bcDDfFa514080d41a4c2cA" + "address": "0x62871e8e348FDC5bE370E92FF8d17cB04A248242" }, { "name": "Genesis", @@ -76,5 +76,17 @@ "type": "logic", "json": "assets/contracts/UserMinterFactory.json", "address": "0x24499444b2BE6A8E3F800D47E4Ed0c36B5c0747e" + }, + { + "name": "Candy", + "type": "erc721", + "json": "assets/contracts/BEBadge.json", + "address": "0xefD4c863E73e7E9Cc33d46fB30CE51510FCFdeb0" + }, + { + "name": "NftDistributor", + "type": "logic", + "json": "assets/contracts/NftDistributor.json", + "address": "0x41D79d900a0aD3017F4697FC19f9E2EE04D05F37" } ] diff --git a/out_arbitrum_testnet_dev.json b/out_arbitrum_testnet_dev.json index 6650abc..136c492 100644 --- a/out_arbitrum_testnet_dev.json +++ b/out_arbitrum_testnet_dev.json @@ -124,5 +124,11 @@ "type": "logic", "json": "assets/contracts/BETokenMall.json", "address": "0x22557f3fe7fbA53C66a35a3D70527D014704fd4D" + }, + { + "name": "ERC721Staking", + "type": "logic", + "json": "assets/contracts/ERC721Staking.json", + "address": "0xefe4b6b4C94b7514543A7ed912C877D6F560DdC2" } ]