diff --git a/src/abis/NftDistributor.json b/src/abis/NftDistributor.json new file mode 100644 index 0000000..b3110f2 --- /dev/null +++ b/src/abis/NftDistributor.json @@ -0,0 +1,17499 @@ +{ + "contractName": "NftDistributor", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_nftTarget", + "type": "address" + }, + { + "internalType": "address[]", + "name": "_manageAddress", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "nft", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "nftSIds", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "nftTIds", + "type": "uint256[]" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "MANAGE_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract IBEERC721", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "nftMinted", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "ownerToNFTs", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "_nftIds", + "type": "uint256[]" + } + ], + "name": "mintToUser", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "_nftIds", + "type": "uint256[]" + } + ], + "name": "addNFTData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getMintableCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getMintableNftIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftTarget\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_manageAddress\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftSIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nftTIds\",\"type\":\"uint256[]\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MANAGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"addNFTData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getMintableCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getMintableNftIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_nftIds\",\"type\":\"uint256[]\"}],\"name\":\"mintToUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract IBEERC721\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nftMinted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToNFTs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addNFTData(address,uint256[])\":{\"details\":\"The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user. mintToUser method would check if target user had permission to mint NFTs. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes in the address of the user and an array of NFT IDs. It then loops through the array of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\",\"params\":{\"_nftIds\":\"- An array of NFT IDs being added to the user's NFT data\",\"_user\":\"- The address of the user being updated with new NFT data\"}},\"constructor\":{\"details\":\"Contract constructor. Initializes the contract with the specified addresses and sets the admin and management roles. Parameters: - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE - _nftSource: The address of the source NFT that will check if user has mint permission. - _manageAddress: The address that will have the MANAGE_ROLE assigned.\"},\"getMintableCount(address)\":{\"details\":\"The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable count is being determined, and returns the number of NFTs owned by the user that have not yet been minted.\",\"params\":{\"_user\":\"- The address of the user whose mintable count is being determined\"},\"returns\":{\"_0\":\"count - The number of NFTs owned by the user that have not yet been minted\"}},\"getMintableNftIds(address)\":{\"details\":\"The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable NFT IDs are being determined, and returns an array of the NFT IDs owned by the user that have not yet been minted.\",\"params\":{\"_user\":\"- The address of the user whose mintable NFT IDs are being determined\"},\"returns\":{\"_0\":\"mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"mintToUser(address,uint256[])\":{\"details\":\"The mintToUser function mints NFTs to a given user. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes an array of nftIds and checks that there are enough mintable NFTs for the user. It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted. Then it emits the Minted event with details of the operation.\",\"params\":{\"_nftIds\":\"- An array of the IDs for the NFTs being minted\",\"_user\":\"- The address of the user receiving the NFTs\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/logic/NftDistributor.sol\":\"NftDistributor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x516a22876c1fab47f49b1bc22b4614491cd05338af8bd2e7b382da090a079990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a439187f7126d31add4557f82d8aed6be0162007cd7182c48fd934dbab8f3849\",\"dweb:/ipfs/QmRPLguRFvrRJS7r6F1bcLvsx6q1VrgjEpZafyeL8D7xZh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/interfaces/IBEERC721.sol\":{\"keccak256\":\"0x41e372150274c8f64d1b7fcd047067ad2f8ad75742985b7b39bf3a58492a817d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15dd6b75bc85926688f51d606c9581f90a275bbc1ce8acdd01ff991ce47b0414\",\"dweb:/ipfs/Qmennh7yJUU6tpbNYAWVpr8qz3gfqSbji5UrU8ooLg1qw4\"]},\"project:/contracts/logic/NftDistributor.sol\":{\"keccak256\":\"0x969da62719d859e1b47a34d2689c71c6a1c9106b1a2f72f92299aae2402c586c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c779abae6a2209025b3e61769ea898461717615b10611cc9e86b1b7d9a0a222e\",\"dweb:/ipfs/QmR1PUnxWKr6jjWYKPiVtmB8zrgFZCAagDP3ns6AzHfdUE\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620029c9380380620029c98339818101604052810190620000379190620006ee565b620000697fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177580620001e860201b60201c565b620000bb7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb5570917fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620001e860201b60201c565b620000fc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775620000f06200024b60201b60201c565b6200025360201b60201c565b6200012e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775306200025360201b60201c565b60005b81518110156200019e576200018a7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709183838151811062000176576200017562000754565b5b60200260200101516200025360201b60201c565b806200019690620007bc565b905062000131565b5081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200080a565b6000620001fb836200026960201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200026582826200028860201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b6200029f8282620002d060201b62000d8e1760201c565b620002cb8160016000858152602001908152602001600020620003c160201b62000e6e1790919060201c565b505050565b620002e28282620003f960201b60201c565b620003bd57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003626200024b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003f1836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200046360201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000620004778383620004dd60201b60201c565b620004d2578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620004d7565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005418262000514565b9050919050565b620005538162000534565b81146200055f57600080fd5b50565b600081519050620005738162000548565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620005c9826200057e565b810181811067ffffffffffffffff82111715620005eb57620005ea6200058f565b5b80604052505050565b60006200060062000500565b90506200060e8282620005be565b919050565b600067ffffffffffffffff8211156200063157620006306200058f565b5b602082029050602081019050919050565b600080fd5b60006200065e620006588462000613565b620005f4565b9050808382526020820190506020840283018581111562000684576200068362000642565b5b835b81811015620006b157806200069c888262000562565b84526020840193505060208101905062000686565b5050509392505050565b600082601f830112620006d357620006d262000579565b5b8151620006e584826020860162000647565b91505092915050565b600080604083850312156200070857620007076200050a565b5b6000620007188582860162000562565b925050602083015167ffffffffffffffff8111156200073c576200073b6200050f565b5b6200074a85828601620006bb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620007c982620007b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620007ff57620007fe62000783565b5b600182019050919050565b6121af806200081a6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806375b238fc116100a2578063a217fddf11610071578063a217fddf14610305578063ad0f93ad14610323578063ca15c87314610353578063d547741f14610383578063ffd68f151461039f57610116565b806375b238fc1461026b57806384be00e4146102895780639010d07c146102a557806391d14854146102d557610116565b80632f2ff15d116100e95780632f2ff15d146101db57806336136433146101f757806336568abe1461021357806347ccca021461022f57806360a4b76a1461024d57610116565b806301ffc9a71461011b578063032221ad1461014b5780630431f2051461017b578063248a9ca3146101ab575b600080fd5b61013560048036038101906101309190611650565b6103cf565b6040516101429190611698565b60405180910390f35b61016560048036038101906101609190611711565b610449565b6040516101729190611806565b60405180910390f35b61019560048036038101906101909190611711565b6105cb565b6040516101a29190611837565b60405180910390f35b6101c560048036038101906101c09190611888565b6106dd565b6040516101d291906118c4565b60405180910390f35b6101f560048036038101906101f091906118df565b6106fc565b005b610211600480360381019061020c9190611984565b610725565b005b61022d600480360381019061022891906118df565b610a88565b005b610237610b0b565b6040516102449190611a43565b60405180910390f35b610255610b31565b60405161026291906118c4565b60405180910390f35b610273610b55565b60405161028091906118c4565b60405180910390f35b6102a3600480360381019061029e9190611984565b610b79565b005b6102bf60048036038101906102ba9190611a8a565b610c50565b6040516102cc9190611ad9565b60405180910390f35b6102ef60048036038101906102ea91906118df565b610c7f565b6040516102fc9190611698565b60405180910390f35b61030d610ce9565b60405161031a91906118c4565b60405180910390f35b61033d60048036038101906103389190611af4565b610cf0565b60405161034a9190611837565b60405180910390f35b61036d60048036038101906103689190611888565b610d21565b60405161037a9190611837565b60405180910390f35b61039d600480360381019061039891906118df565b610d45565b005b6103b960048036038101906103b49190611b34565b610d6e565b6040516103c69190611698565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610442575061044182610e9e565b5b9050919050565b60606000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104d657602002820191906000526020600020905b8154815260200190600101908083116104c2575b505050505090506000815167ffffffffffffffff8111156104fa576104f9611b61565b5b6040519080825280602002602001820160405280156105285781602001602082028036833780820191505090505b5090506000805b83518110156105bf57600084828151811061054d5761054c611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166105ab57808484815181106105905761058f611b90565b5b60200260200101818152505082806105a790611bee565b9350505b5080806105b790611bee565b91505061052f565b50819350505050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561065757602002820191906000526020600020905b815481526020019060010190808311610643575b505050505090506000805b82518110156106d25760008382815181106106805761067f611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166106be5782806106ba90611bee565b9350505b5080806106ca90611bee565b915050610662565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b610705826106dd565b61071681610711610f18565b610f20565b6107208383610fbd565b505050565b6107567fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610751610f18565b610f20565b61075f836105cb565b8282905011156107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611c94565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561082f57602002820191906000526020600020905b81548152602001906001019080831161081b575b505050505090506000808484905067ffffffffffffffff81111561085657610855611b61565b5b6040519080825280602002602001820160405280156108845781602001602082028036833780820191505090505b50905060005b83518110156109f45760008482815181106108a8576108a7611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166109e05760008787868181106108ec576108eb611b90565b5b9050602002013590508184868151811061090957610908611b90565b5b60200260200101818152505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b815260040161099e929190611cb4565b600060405180830381600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b5050505084806109db90611bee565b955050505b5080806109ec90611bee565b91505061088a565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d838888604051610a7893929190611d4d565b60405180910390a3505050505050565b610a90610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490611df8565b60405180910390fd5b610b078282610ff1565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610baa7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610ba5610f18565b610f20565b60005b82829050811015610c4a57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610c0a57610c09611b90565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610c4290611bee565b915050610bad565b50505050565b6000610c77826001600086815260200190815260200160002061102590919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610d0c57600080fd5b90600052602060002001600091509150505481565b6000610d3e6001600084815260200190815260200160002061103f565b9050919050565b610d4e826106dd565b610d5f81610d5a610f18565b610f20565b610d698383610ff1565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610d988282610c7f565b610e6a57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e0f610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610e96836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611054565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f115750610f10826110c4565b5b9050919050565b600033905090565b610f2a8282610c7f565b610fb957610f4f8173ffffffffffffffffffffffffffffffffffffffff16601461112e565b610f5d8360001c602061112e565b604051602001610f6e929190611f2a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb09190611fae565b60405180910390fd5b5050565b610fc78282610d8e565b610fec8160016000858152602001908152602001600020610e6e90919063ffffffff16565b505050565b610ffb828261136a565b611020816001600085815260200190815260200160002061144b90919063ffffffff16565b505050565b6000611034836000018361147b565b60001c905092915050565b600061104d826000016114a6565b9050919050565b600061106083836114b7565b6110b95782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506110be565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600060028360026111419190611fd0565b61114b919061202a565b67ffffffffffffffff81111561116457611163611b61565b5b6040519080825280601f01601f1916602001820160405280156111965781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106111ce576111cd611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061123257611231611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026112729190611fd0565b61127c919061202a565b90505b600181111561131c577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106112be576112bd611b90565b5b1a60f81b8282815181106112d5576112d4611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061131590612080565b905061127f565b5060008414611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906120f6565b60405180910390fd5b8091505092915050565b6113748282610c7f565b1561144757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113ec610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611473836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6114da565b905092915050565b600082600001828154811061149357611492611b90565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146115e257600060018261150c9190612116565b90506000600186600001805490506115249190612116565b905081811461159357600086600001828154811061154557611544611b90565b5b906000526020600020015490508087600001848154811061156957611568611b90565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806115a7576115a661214a565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506115e8565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61162d816115f8565b811461163857600080fd5b50565b60008135905061164a81611624565b92915050565b600060208284031215611666576116656115ee565b5b60006116748482850161163b565b91505092915050565b60008115159050919050565b6116928161167d565b82525050565b60006020820190506116ad6000830184611689565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116de826116b3565b9050919050565b6116ee816116d3565b81146116f957600080fd5b50565b60008135905061170b816116e5565b92915050565b600060208284031215611727576117266115ee565b5b6000611735848285016116fc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61177d8161176a565b82525050565b600061178f8383611774565b60208301905092915050565b6000602082019050919050565b60006117b38261173e565b6117bd8185611749565b93506117c88361175a565b8060005b838110156117f95781516117e08882611783565b97506117eb8361179b565b9250506001810190506117cc565b5085935050505092915050565b6000602082019050818103600083015261182081846117a8565b905092915050565b6118318161176a565b82525050565b600060208201905061184c6000830184611828565b92915050565b6000819050919050565b61186581611852565b811461187057600080fd5b50565b6000813590506118828161185c565b92915050565b60006020828403121561189e5761189d6115ee565b5b60006118ac84828501611873565b91505092915050565b6118be81611852565b82525050565b60006020820190506118d960008301846118b5565b92915050565b600080604083850312156118f6576118f56115ee565b5b600061190485828601611873565b9250506020611915858286016116fc565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119445761194361191f565b5b8235905067ffffffffffffffff81111561196157611960611924565b5b60208301915083602082028301111561197d5761197c611929565b5b9250929050565b60008060006040848603121561199d5761199c6115ee565b5b60006119ab868287016116fc565b935050602084013567ffffffffffffffff8111156119cc576119cb6115f3565b5b6119d88682870161192e565b92509250509250925092565b6000819050919050565b6000611a09611a046119ff846116b3565b6119e4565b6116b3565b9050919050565b6000611a1b826119ee565b9050919050565b6000611a2d82611a10565b9050919050565b611a3d81611a22565b82525050565b6000602082019050611a586000830184611a34565b92915050565b611a678161176a565b8114611a7257600080fd5b50565b600081359050611a8481611a5e565b92915050565b60008060408385031215611aa157611aa06115ee565b5b6000611aaf85828601611873565b9250506020611ac085828601611a75565b9150509250929050565b611ad3816116d3565b82525050565b6000602082019050611aee6000830184611aca565b92915050565b60008060408385031215611b0b57611b0a6115ee565b5b6000611b19858286016116fc565b9250506020611b2a85828601611a75565b9150509250929050565b600060208284031215611b4a57611b496115ee565b5b6000611b5884828501611a75565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611bf98261176a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c2c57611c2b611bbf565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611c7e601c83611c37565b9150611c8982611c48565b602082019050919050565b60006020820190508181036000830152611cad81611c71565b9050919050565b6000604082019050611cc96000830185611aca565b611cd66020830184611828565b9392505050565b600080fd5b82818337600083830152505050565b6000611cfd8385611749565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611d3057611d2f611cdd565b5b602083029250611d41838584611ce2565b82840190509392505050565b60006040820190508181036000830152611d6781866117a8565b90508181036020830152611d7c818486611cf1565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611de2602f83611c37565b9150611ded82611d86565b604082019050919050565b60006020820190508181036000830152611e1181611dd5565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611e59601783611e18565b9150611e6482611e23565b601782019050919050565b600081519050919050565b60005b83811015611e98578082015181840152602081019050611e7d565b83811115611ea7576000848401525b50505050565b6000611eb882611e6f565b611ec28185611e18565b9350611ed2818560208601611e7a565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611f14601183611e18565b9150611f1f82611ede565b601182019050919050565b6000611f3582611e4c565b9150611f418285611ead565b9150611f4c82611f07565b9150611f588284611ead565b91508190509392505050565b6000601f19601f8301169050919050565b6000611f8082611e6f565b611f8a8185611c37565b9350611f9a818560208601611e7a565b611fa381611f64565b840191505092915050565b60006020820190508181036000830152611fc88184611f75565b905092915050565b6000611fdb8261176a565b9150611fe68361176a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561201f5761201e611bbf565b5b828202905092915050565b60006120358261176a565b91506120408361176a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561207557612074611bbf565b5b828201905092915050565b600061208b8261176a565b9150600082141561209f5761209e611bbf565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006120e0602083611c37565b91506120eb826120aa565b602082019050919050565b6000602082019050818103600083015261210f816120d3565b9050919050565b60006121218261176a565b915061212c8361176a565b92508282101561213f5761213e611bbf565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122084e507c9b06902091b745af1a5c2b1f820d8094b3bbd15c708fea8db99ea64ce64736f6c634300080a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806375b238fc116100a2578063a217fddf11610071578063a217fddf14610305578063ad0f93ad14610323578063ca15c87314610353578063d547741f14610383578063ffd68f151461039f57610116565b806375b238fc1461026b57806384be00e4146102895780639010d07c146102a557806391d14854146102d557610116565b80632f2ff15d116100e95780632f2ff15d146101db57806336136433146101f757806336568abe1461021357806347ccca021461022f57806360a4b76a1461024d57610116565b806301ffc9a71461011b578063032221ad1461014b5780630431f2051461017b578063248a9ca3146101ab575b600080fd5b61013560048036038101906101309190611650565b6103cf565b6040516101429190611698565b60405180910390f35b61016560048036038101906101609190611711565b610449565b6040516101729190611806565b60405180910390f35b61019560048036038101906101909190611711565b6105cb565b6040516101a29190611837565b60405180910390f35b6101c560048036038101906101c09190611888565b6106dd565b6040516101d291906118c4565b60405180910390f35b6101f560048036038101906101f091906118df565b6106fc565b005b610211600480360381019061020c9190611984565b610725565b005b61022d600480360381019061022891906118df565b610a88565b005b610237610b0b565b6040516102449190611a43565b60405180910390f35b610255610b31565b60405161026291906118c4565b60405180910390f35b610273610b55565b60405161028091906118c4565b60405180910390f35b6102a3600480360381019061029e9190611984565b610b79565b005b6102bf60048036038101906102ba9190611a8a565b610c50565b6040516102cc9190611ad9565b60405180910390f35b6102ef60048036038101906102ea91906118df565b610c7f565b6040516102fc9190611698565b60405180910390f35b61030d610ce9565b60405161031a91906118c4565b60405180910390f35b61033d60048036038101906103389190611af4565b610cf0565b60405161034a9190611837565b60405180910390f35b61036d60048036038101906103689190611888565b610d21565b60405161037a9190611837565b60405180910390f35b61039d600480360381019061039891906118df565b610d45565b005b6103b960048036038101906103b49190611b34565b610d6e565b6040516103c69190611698565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610442575061044182610e9e565b5b9050919050565b60606000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156104d657602002820191906000526020600020905b8154815260200190600101908083116104c2575b505050505090506000815167ffffffffffffffff8111156104fa576104f9611b61565b5b6040519080825280602002602001820160405280156105285781602001602082028036833780820191505090505b5090506000805b83518110156105bf57600084828151811061054d5761054c611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166105ab57808484815181106105905761058f611b90565b5b60200260200101818152505082806105a790611bee565b9350505b5080806105b790611bee565b91505061052f565b50819350505050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561065757602002820191906000526020600020905b815481526020019060010190808311610643575b505050505090506000805b82518110156106d25760008382815181106106805761067f611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166106be5782806106ba90611bee565b9350505b5080806106ca90611bee565b915050610662565b508092505050919050565b6000806000838152602001908152602001600020600101549050919050565b610705826106dd565b61071681610711610f18565b610f20565b6107208383610fbd565b505050565b6107567fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610751610f18565b610f20565b61075f836105cb565b8282905011156107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611c94565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561082f57602002820191906000526020600020905b81548152602001906001019080831161081b575b505050505090506000808484905067ffffffffffffffff81111561085657610855611b61565b5b6040519080825280602002602001820160405280156108845781602001602082028036833780820191505090505b50905060005b83518110156109f45760008482815181106108a8576108a7611b90565b5b602002602001015190506003600082815260200190815260200160002060009054906101000a900460ff166109e05760008787868181106108ec576108eb611b90565b5b9050602002013590508184868151811061090957610908611b90565b5b60200260200101818152505060016003600084815260200190815260200160002060006101000a81548160ff021916908315150217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f198a836040518363ffffffff1660e01b815260040161099e929190611cb4565b600060405180830381600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b5050505084806109db90611bee565b955050505b5080806109ec90611bee565b91505061088a565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f044ffb6dcd4ec715d7d57b6c88fa43e63f1e156efb2a93d1072314f910286e9d838888604051610a7893929190611d4d565b60405180910390a3505050505050565b610a90610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490611df8565b60405180910390fd5b610b078282610ff1565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb55709181565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610baa7fa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091610ba5610f18565b610f20565b60005b82829050811015610c4a57600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838383818110610c0a57610c09611b90565b5b9050602002013590806001815401808255809150506001900390600052602060002001600090919091909150558080610c4290611bee565b915050610bad565b50505050565b6000610c77826001600086815260200190815260200160002061102590919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b60026020528160005260406000208181548110610d0c57600080fd5b90600052602060002001600091509150505481565b6000610d3e6001600084815260200190815260200160002061103f565b9050919050565b610d4e826106dd565b610d5f81610d5a610f18565b610f20565b610d698383610ff1565b505050565b60036020528060005260406000206000915054906101000a900460ff1681565b610d988282610c7f565b610e6a57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e0f610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610e96836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611054565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f115750610f10826110c4565b5b9050919050565b600033905090565b610f2a8282610c7f565b610fb957610f4f8173ffffffffffffffffffffffffffffffffffffffff16601461112e565b610f5d8360001c602061112e565b604051602001610f6e929190611f2a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb09190611fae565b60405180910390fd5b5050565b610fc78282610d8e565b610fec8160016000858152602001908152602001600020610e6e90919063ffffffff16565b505050565b610ffb828261136a565b611020816001600085815260200190815260200160002061144b90919063ffffffff16565b505050565b6000611034836000018361147b565b60001c905092915050565b600061104d826000016114a6565b9050919050565b600061106083836114b7565b6110b95782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506110be565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6060600060028360026111419190611fd0565b61114b919061202a565b67ffffffffffffffff81111561116457611163611b61565b5b6040519080825280601f01601f1916602001820160405280156111965781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106111ce576111cd611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061123257611231611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026112729190611fd0565b61127c919061202a565b90505b600181111561131c577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106112be576112bd611b90565b5b1a60f81b8282815181106112d5576112d4611b90565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061131590612080565b905061127f565b5060008414611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906120f6565b60405180910390fd5b8091505092915050565b6113748282610c7f565b1561144757600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113ec610f18565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611473836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6114da565b905092915050565b600082600001828154811061149357611492611b90565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146115e257600060018261150c9190612116565b90506000600186600001805490506115249190612116565b905081811461159357600086600001828154811061154557611544611b90565b5b906000526020600020015490508087600001848154811061156957611568611b90565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806115a7576115a661214a565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506115e8565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61162d816115f8565b811461163857600080fd5b50565b60008135905061164a81611624565b92915050565b600060208284031215611666576116656115ee565b5b60006116748482850161163b565b91505092915050565b60008115159050919050565b6116928161167d565b82525050565b60006020820190506116ad6000830184611689565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116de826116b3565b9050919050565b6116ee816116d3565b81146116f957600080fd5b50565b60008135905061170b816116e5565b92915050565b600060208284031215611727576117266115ee565b5b6000611735848285016116fc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61177d8161176a565b82525050565b600061178f8383611774565b60208301905092915050565b6000602082019050919050565b60006117b38261173e565b6117bd8185611749565b93506117c88361175a565b8060005b838110156117f95781516117e08882611783565b97506117eb8361179b565b9250506001810190506117cc565b5085935050505092915050565b6000602082019050818103600083015261182081846117a8565b905092915050565b6118318161176a565b82525050565b600060208201905061184c6000830184611828565b92915050565b6000819050919050565b61186581611852565b811461187057600080fd5b50565b6000813590506118828161185c565b92915050565b60006020828403121561189e5761189d6115ee565b5b60006118ac84828501611873565b91505092915050565b6118be81611852565b82525050565b60006020820190506118d960008301846118b5565b92915050565b600080604083850312156118f6576118f56115ee565b5b600061190485828601611873565b9250506020611915858286016116fc565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119445761194361191f565b5b8235905067ffffffffffffffff81111561196157611960611924565b5b60208301915083602082028301111561197d5761197c611929565b5b9250929050565b60008060006040848603121561199d5761199c6115ee565b5b60006119ab868287016116fc565b935050602084013567ffffffffffffffff8111156119cc576119cb6115f3565b5b6119d88682870161192e565b92509250509250925092565b6000819050919050565b6000611a09611a046119ff846116b3565b6119e4565b6116b3565b9050919050565b6000611a1b826119ee565b9050919050565b6000611a2d82611a10565b9050919050565b611a3d81611a22565b82525050565b6000602082019050611a586000830184611a34565b92915050565b611a678161176a565b8114611a7257600080fd5b50565b600081359050611a8481611a5e565b92915050565b60008060408385031215611aa157611aa06115ee565b5b6000611aaf85828601611873565b9250506020611ac085828601611a75565b9150509250929050565b611ad3816116d3565b82525050565b6000602082019050611aee6000830184611aca565b92915050565b60008060408385031215611b0b57611b0a6115ee565b5b6000611b19858286016116fc565b9250506020611b2a85828601611a75565b9150509250929050565b600060208284031215611b4a57611b496115ee565b5b6000611b5884828501611a75565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611bf98261176a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c2c57611c2b611bbf565b5b600182019050919050565b600082825260208201905092915050565b7f4d696e7461626c6520636f756e74206973206e6f7420656e6f75676800000000600082015250565b6000611c7e601c83611c37565b9150611c8982611c48565b602082019050919050565b60006020820190508181036000830152611cad81611c71565b9050919050565b6000604082019050611cc96000830185611aca565b611cd66020830184611828565b9392505050565b600080fd5b82818337600083830152505050565b6000611cfd8385611749565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611d3057611d2f611cdd565b5b602083029250611d41838584611ce2565b82840190509392505050565b60006040820190508181036000830152611d6781866117a8565b90508181036020830152611d7c818486611cf1565b9050949350505050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000611de2602f83611c37565b9150611ded82611d86565b604082019050919050565b60006020820190508181036000830152611e1181611dd5565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000611e59601783611e18565b9150611e6482611e23565b601782019050919050565b600081519050919050565b60005b83811015611e98578082015181840152602081019050611e7d565b83811115611ea7576000848401525b50505050565b6000611eb882611e6f565b611ec28185611e18565b9350611ed2818560208601611e7a565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000611f14601183611e18565b9150611f1f82611ede565b601182019050919050565b6000611f3582611e4c565b9150611f418285611ead565b9150611f4c82611f07565b9150611f588284611ead565b91508190509392505050565b6000601f19601f8301169050919050565b6000611f8082611e6f565b611f8a8185611c37565b9350611f9a818560208601611e7a565b611fa381611f64565b840191505092915050565b60006020820190508181036000830152611fc88184611f75565b905092915050565b6000611fdb8261176a565b9150611fe68361176a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561201f5761201e611bbf565b5b828202905092915050565b60006120358261176a565b91506120408361176a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561207557612074611bbf565b5b828201905092915050565b600061208b8261176a565b9150600082141561209f5761209e611bbf565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006120e0602083611c37565b91506120eb826120aa565b602082019050919050565b6000602082019050818103600083015261210f816120d3565b9050919050565b60006121218261176a565b915061212c8361176a565b92508282101561213f5761213e611bbf565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122084e507c9b06902091b745af1a5c2b1f820d8094b3bbd15c708fea8db99ea64ce64736f6c634300080a0033", + "immutableReferences": {}, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:4694:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:12", + "type": "" + } + ], + "src": "7:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:12", + "type": "" + } + ], + "src": "334:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:12", + "type": "" + } + ], + "src": "466:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:12" + }, + "nodeType": "YulIf", + "src": "621:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:12", + "type": "" + } + ], + "src": "568:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:12" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:12", + "type": "" + } + ], + "src": "696:143:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "934:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "951:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "954:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "944:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "944:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "944:12:12" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "845:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1016:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1026:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1044:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1040:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1040:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1060:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1056:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1056:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1036:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1036:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1026:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "999:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1009:6:12", + "type": "" + } + ], + "src": "968:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1121:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1124:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1114:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1114:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1114:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1218:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1221:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1211:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1211:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1211:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1242:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1245:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1235:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1235:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1235:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1076:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1305:238:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1315:58:12", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1337:6:12" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1367:4:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1345:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "1345:27:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1333:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1333:40:12" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1319:10:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1484:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1486:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "1486:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1486:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1427:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1439:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1424:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1424:34:12" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1463:10:12" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1475:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1460:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1460:22:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1421:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1421:62:12" + }, + "nodeType": "YulIf", + "src": "1418:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1522:2:12", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1526:10:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1515:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1515:22:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1515:22:12" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1291:6:12", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1299:4:12", + "type": "" + } + ], + "src": "1262:281:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1590:88:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1600:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1610:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1610:20:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1600:6:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1659:6:12" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1667:4:12" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1639:19:12" + }, + "nodeType": "YulFunctionCall", + "src": "1639:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1639:33:12" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1574:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1583:6:12", + "type": "" + } + ], + "src": "1549:129:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1766:229:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1871:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1873:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "1873:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1873:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1843:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1851:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1840:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1840:30:12" + }, + "nodeType": "YulIf", + "src": "1837:56:12" + }, + { + "nodeType": "YulAssignment", + "src": "1903:25:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1915:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1923:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1911:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1911:17:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1903:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1965:23:12", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1977:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1983:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1973:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1973:15:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1965:4:12" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1750:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1761:4:12", + "type": "" + } + ], + "src": "1684:311:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2107:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2110:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2100:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2100:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2100:12:12" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "2001:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2254:619:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2264:90:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2346:6:12" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2289:56:12" + }, + "nodeType": "YulFunctionCall", + "src": "2289:64:12" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2273:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "2273:81:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2264:5:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2363:16:12", + "value": { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2374:5:12" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2367:3:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2396:5:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2403:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2389:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2389:21:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2389:21:12" + }, + { + "nodeType": "YulAssignment", + "src": "2419:23:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2430:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2437:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2426:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2426:16:12" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2419:3:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2452:44:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2470:6:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2482:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2490:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2478:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2478:17:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2466:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2466:30:12" + }, + "variables": [ + { + "name": "srcEnd", + "nodeType": "YulTypedName", + "src": "2456:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2524:103:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "2538:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2538:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2538:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "2511:6:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2519:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2508:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2508:15:12" + }, + "nodeType": "YulIf", + "src": "2505:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2712:155:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2727:21:12", + "value": { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2745:3:12" + }, + "variables": [ + { + "name": "elementPos", + "nodeType": "YulTypedName", + "src": "2731:10:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2769:3:12" + }, + { + "arguments": [ + { + "name": "elementPos", + "nodeType": "YulIdentifier", + "src": "2806:10:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2818:3:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "2774:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "2774:48:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2762:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2762:61:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2762:61:12" + }, + { + "nodeType": "YulAssignment", + "src": "2836:21:12", + "value": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2847:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2852:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2843:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2843:14:12" + }, + "variableNames": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2836:3:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2665:3:12" + }, + { + "name": "srcEnd", + "nodeType": "YulIdentifier", + "src": "2670:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2662:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2662:15:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2678:25:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2680:21:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2691:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2696:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2687:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2687:14:12" + }, + "variableNames": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2680:3:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2640:21:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2642:17:12", + "value": { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2653:6:12" + }, + "variables": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2646:3:12", + "type": "" + } + ] + } + ] + }, + "src": "2636:231:12" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2224:6:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2232:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2240:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2248:5:12", + "type": "" + } + ], + "src": "2141:732:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2984:297:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3033:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "3035:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3035:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3035:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3012:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3020:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3008:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3008:17:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3027:3:12" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3004:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3004:27:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2997:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2997:35:12" + }, + "nodeType": "YulIf", + "src": "2994:122:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3125:27:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3145:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3139:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "3139:13:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3129:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3161:114:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3248:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3256:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3244:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3244:17:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3263:6:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3271:3:12" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3170:73:12" + }, + "nodeType": "YulFunctionCall", + "src": "3170:105:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3161:5:12" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2962:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2970:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2978:5:12", + "type": "" + } + ], + "src": "2896:385:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3406:591:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3452:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3454:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3454:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3454:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3427:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3436:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3423:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3423:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3448:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3419:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3419:32:12" + }, + "nodeType": "YulIf", + "src": "3416:119:12" + }, + { + "nodeType": "YulBlock", + "src": "3545:128:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3560:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3574:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3564:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3589:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3635:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3646:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3631:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3631:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3655:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "3599:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "3599:64:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3589:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3683:307:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3698:39:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3722:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3733:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3718:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3718:18:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3712:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "3712:25:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3702:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3784:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3786:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3786:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3786:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3756:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3764:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3753:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3753:30:12" + }, + "nodeType": "YulIf", + "src": "3750:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "3881:99:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3952:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3963:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3948:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3948:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3972:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3891:56:12" + }, + "nodeType": "YulFunctionCall", + "src": "3891:89:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3881:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3368:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3379:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3391:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3399:6:12", + "type": "" + } + ], + "src": "3287:710:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4031:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4048:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4051:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4041:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4041:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4041:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4145:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4148:4:12", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4138:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4138:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4138:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4169:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4172:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4162:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4162:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4162:15:12" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "4003:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4217:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4234:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4237:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4227:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4227:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4227:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4331:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4334:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4324:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4324:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4324:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4355:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4358:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4348:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4348:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4348:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "4189:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4420:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4430:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4441:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4430:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4402:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4412:7:12", + "type": "" + } + ], + "src": "4375:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4501:190:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4511:33:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4538:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4520:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4520:24:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4511:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4634:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "4636:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "4636:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4636:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4559:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4566:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4556:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4556:77:12" + }, + "nodeType": "YulIf", + "src": "4553:103:12" + }, + { + "nodeType": "YulAssignment", + "src": "4665:20:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4676:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4683:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4672:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4672:13:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "4665:3:12" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4487:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "4497:3:12", + "type": "" + } + ], + "src": "4458:233:12" + } + ] + }, + "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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\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_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_array$_t_address_$dyn_memory_ptr_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:21798:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:12", + "type": "" + } + ], + "src": "7:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "378:105:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "388:89:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "403:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "410:66:12", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "399:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "399:78:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "388:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "360:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "370:7:12", + "type": "" + } + ], + "src": "334:149:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "531:78:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "587:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "596:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "599:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "589:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "589:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "589:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "554:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "578:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "561:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "561:23:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "551:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "551:34:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "544:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "544:42:12" + }, + "nodeType": "YulIf", + "src": "541:62:12" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "524:5:12", + "type": "" + } + ], + "src": "489:120:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "666:86:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "676:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "698:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "685:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "685:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "740:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "714:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "714:32:12" + }, + "nodeType": "YulExpressionStatement", + "src": "714:32:12" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "644:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "652:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "660:5:12", + "type": "" + } + ], + "src": "615:137:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "823:262:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "871:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "871:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "871:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "844:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "853:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "840:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "840:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "865:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "836:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "836:32:12" + }, + "nodeType": "YulIf", + "src": "833:119:12" + }, + { + "nodeType": "YulBlock", + "src": "962:116:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "977:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "991:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "981:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1006:62:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1040:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1051:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1036:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1036:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1060:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1016:19:12" + }, + "nodeType": "YulFunctionCall", + "src": "1016:52:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1006:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "793:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "804:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "816:6:12", + "type": "" + } + ], + "src": "758:327:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1133:48:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1143:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1168:5:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1161:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1161:13:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1154:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1154:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1143:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1115:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1125:7:12", + "type": "" + } + ], + "src": "1091:90:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1246:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1263:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1283:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "1268:14:12" + }, + "nodeType": "YulFunctionCall", + "src": "1268:21:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1256:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1256:34:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1256:34:12" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1234:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1241:3:12", + "type": "" + } + ], + "src": "1187:109:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1394:118:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1404:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1416:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1427:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1412:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1412:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1404:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1478:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1491:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1502:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1487:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1487:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "1440:37:12" + }, + "nodeType": "YulFunctionCall", + "src": "1440:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1440:65:12" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1366:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1378:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1389:4:12", + "type": "" + } + ], + "src": "1302:210:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1563:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1573:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1588:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1595:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1584:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1584:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1573:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1545:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1555:7:12", + "type": "" + } + ], + "src": "1518:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1695:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1705:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1734:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1716:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1716:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1705:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1677:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1687:7:12", + "type": "" + } + ], + "src": "1650:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1795:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1852:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1861:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1864:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1854:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1854:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1854:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1818:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1843:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1825:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1825:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1815:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1815:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1808:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1808:43:12" + }, + "nodeType": "YulIf", + "src": "1805:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1788:5:12", + "type": "" + } + ], + "src": "1752:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1932:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1942:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1964:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1951:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "1951:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1942:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2007:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "1980:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "1980:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1980:33:12" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1910:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1918:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1926:5:12", + "type": "" + } + ], + "src": "1880:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2091:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2137:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2139:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2139:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2139:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2112:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2121:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2108:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2108:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2133:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2104:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2104:32:12" + }, + "nodeType": "YulIf", + "src": "2101:119:12" + }, + { + "nodeType": "YulBlock", + "src": "2230:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2245:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2259:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2249:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2274:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2309:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2320:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2305:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2305:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2329:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2284:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2284:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2274:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2061:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2072:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2084:6:12", + "type": "" + } + ], + "src": "2025:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2434:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2445:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2461:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2455:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2455:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2445:6:12" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2417:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2427:6:12", + "type": "" + } + ], + "src": "2360:114:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2591:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2608:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2613:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2601:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2601:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2601:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "2629:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2648:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2653:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2644:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2644:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "2629:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2563:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2568:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "2579:11:12", + "type": "" + } + ], + "src": "2480:184:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2742:60:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2752:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "2760:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2752:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2773:22:12", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "2785:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2781:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2781:14:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "2773:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "2729:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "2737:4:12", + "type": "" + } + ], + "src": "2670:132:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2853:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2863:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2874:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2845:7:12", + "type": "" + } + ], + "src": "2808:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2946:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2963:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2986:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2968:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2968:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2956:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2956:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2956:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2934:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2941:3:12", + "type": "" + } + ], + "src": "2891:108:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3085:99:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3129:6:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3137:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "3095:33:12" + }, + "nodeType": "YulFunctionCall", + "src": "3095:46:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3095:46:12" + }, + { + "nodeType": "YulAssignment", + "src": "3150:28:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3168:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3173:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3164:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3164:14:12" + }, + "variableNames": [ + { + "name": "updatedPos", + "nodeType": "YulIdentifier", + "src": "3150:10:12" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3058:6:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3066:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nodeType": "YulTypedName", + "src": "3074:10:12", + "type": "" + } + ], + "src": "3005:179:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3265:38:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3275:22:12", + "value": { + "arguments": [ + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "3287:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3292:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3283:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3283:14:12" + }, + "variableNames": [ + { + "name": "next", + "nodeType": "YulIdentifier", + "src": "3275:4:12" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "3252:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nodeType": "YulTypedName", + "src": "3260:4:12", + "type": "" + } + ], + "src": "3190:113:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3463:608:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3473:68:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3535:5:12" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3487:47:12" + }, + "nodeType": "YulFunctionCall", + "src": "3487:54:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3477:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3550:93:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3631:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3636:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3557:73:12" + }, + "nodeType": "YulFunctionCall", + "src": "3557:86:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3550:3:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3652:71:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3717:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3667:49:12" + }, + "nodeType": "YulFunctionCall", + "src": "3667:56:12" + }, + "variables": [ + { + "name": "baseRef", + "nodeType": "YulTypedName", + "src": "3656:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3732:21:12", + "value": { + "name": "baseRef", + "nodeType": "YulIdentifier", + "src": "3746:7:12" + }, + "variables": [ + { + "name": "srcPtr", + "nodeType": "YulTypedName", + "src": "3736:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3822:224:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3836:34:12", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "3863:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3857:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "3857:13:12" + }, + "variables": [ + { + "name": "elementValue0", + "nodeType": "YulTypedName", + "src": "3840:13:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3883:70:12", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nodeType": "YulIdentifier", + "src": "3934:13:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3949:3:12" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "3890:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "3890:63:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3883:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3966:70:12", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "4029:6:12" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3976:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "3976:60:12" + }, + "variableNames": [ + { + "name": "srcPtr", + "nodeType": "YulIdentifier", + "src": "3966:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3784:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3787:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3781:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3781:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "3795:18:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3797:14:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3806:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3809:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3802:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3802:9:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "3797:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "3766:14:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3768:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3777:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "3772:1:12", + "type": "" + } + ] + } + ] + }, + "src": "3762:284:12" + }, + { + "nodeType": "YulAssignment", + "src": "4055:10:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4062:3:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4055:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3442:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3449:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3458:3:12", + "type": "" + } + ], + "src": "3339:732:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4225:225:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4235:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4247:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4258:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4243:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4243:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4235:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4282:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4293:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4278:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4278:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4301:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4307:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4297:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4297:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4271:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4271:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "4327:116:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4429:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4438:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4335:93:12" + }, + "nodeType": "YulFunctionCall", + "src": "4335:108:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4327:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4197:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4209:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4220:4:12", + "type": "" + } + ], + "src": "4077:373:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4521:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4538:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4561:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4543:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4543:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4531:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4531:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4531:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4509:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4516:3:12", + "type": "" + } + ], + "src": "4456:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4678:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4688:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4700:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4711:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4696:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4696:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4688:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4768:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4781:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4792:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4777:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4777:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "4724:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "4724:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4724:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4650:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4662:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4673:4:12", + "type": "" + } + ], + "src": "4580:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4853:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4863:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4874:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4845:7:12", + "type": "" + } + ], + "src": "4808:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4934:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4991:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5000:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5003:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4993:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4993:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4993:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4957:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4982:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "4964:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4964:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "4954:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4954:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4947:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4947:43:12" + }, + "nodeType": "YulIf", + "src": "4944:63:12" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4927:5:12", + "type": "" + } + ], + "src": "4891:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5071:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5081:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5103:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5090:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "5090:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5081:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5146:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5119:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "5119:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5119:33:12" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5049:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5057:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5065:5:12", + "type": "" + } + ], + "src": "5019:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5230:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5276:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5278:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "5278:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5278:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5251:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5260:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5247:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5247:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5272:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5243:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5243:32:12" + }, + "nodeType": "YulIf", + "src": "5240:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5369:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5384:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5398:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5388:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5413:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5448:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5459:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5444:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5444:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5468:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5423:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5423:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5413:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5200:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5211:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5223:6:12", + "type": "" + } + ], + "src": "5164:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5564:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5581:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5604:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nodeType": "YulIdentifier", + "src": "5586:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5586:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5574:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5574:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5574:37:12" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5552:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5559:3:12", + "type": "" + } + ], + "src": "5499:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5721:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5731:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5743:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5754:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5739:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5739:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5731:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5811:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5824:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5835:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5820:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5820:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nodeType": "YulIdentifier", + "src": "5767:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5767:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5767:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5693:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5705:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5716:4:12", + "type": "" + } + ], + "src": "5623:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5934:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5980:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5982:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "5982:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5982:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5955:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5964:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5951:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5951:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5976:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5947:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5947:32:12" + }, + "nodeType": "YulIf", + "src": "5944:119:12" + }, + { + "nodeType": "YulBlock", + "src": "6073:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6088:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6102:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6092:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6117:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6152:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6163:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6148:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6148:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6172:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "6127:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "6127:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6117:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6200:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6215:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6229:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6219:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6245:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6280:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6291:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6276:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6276:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6300:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "6255:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "6255:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6245:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5896:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5907:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5919:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5927:6:12", + "type": "" + } + ], + "src": "5851:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6420:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6437:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6440:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6430:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6430:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6430:12:12" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "6331:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6543:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6560:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6563:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6553:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6553:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6553:12:12" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulFunctionDefinition", + "src": "6454:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6666:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6683:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6686:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6676:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6676:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6676:12:12" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulFunctionDefinition", + "src": "6577:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6807:478:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6856:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "6858:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "6858:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6858:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6835:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6843:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6831:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6831:17:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6850:3:12" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6827:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6827:27:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6820:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6820:35:12" + }, + "nodeType": "YulIf", + "src": "6817:122:12" + }, + { + "nodeType": "YulAssignment", + "src": "6948:30:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6971:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6958:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "6958:20:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6948:6:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7021:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nodeType": "YulIdentifier", + "src": "7023:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "7023:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7023:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6993:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7001:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6990:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6990:30:12" + }, + "nodeType": "YulIf", + "src": "6987:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "7113:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7129:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7137:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7125:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7125:17:12" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7113:8:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7196:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nodeType": "YulIdentifier", + "src": "7198:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "7198:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7198:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "7161:8:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7175:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7183:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7171:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7171:17:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7157:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7157:32:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7191:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7154:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7154:41:12" + }, + "nodeType": "YulIf", + "src": "7151:128:12" + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6774:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6782:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "6790:8:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6800:6:12", + "type": "" + } + ], + "src": "6717:568:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7409:586:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7455:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7457:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "7457:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7457:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7430:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7439:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7426:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7426:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7451:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7422:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7422:32:12" + }, + "nodeType": "YulIf", + "src": "7419:119:12" + }, + { + "nodeType": "YulBlock", + "src": "7548:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7563:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7577:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7567:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7592:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7627:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7638:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7623:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7623:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7647:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "7602:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "7602:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7592:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7675:313:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7690:46:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7721:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7732:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7717:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7717:18:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "7704:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "7704:32:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7694:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7783:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "7785:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "7785:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7785:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7755:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7763:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7752:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7752:30:12" + }, + "nodeType": "YulIf", + "src": "7749:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "7880:98:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7950:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7961:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7946:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7946:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7970:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "7898:47:12" + }, + "nodeType": "YulFunctionCall", + "src": "7898:80:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7880:6:12" + }, + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "7888:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7363:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7374:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7386:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7394:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "7402:6:12", + "type": "" + } + ], + "src": "7291:704:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8033:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8043:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8050:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "8043:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8019:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "8029:3:12", + "type": "" + } + ], + "src": "8001:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8127:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8137:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8195:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "8177:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "8177:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "8168:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "8168:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "8150:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "8150:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "8137:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8107:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "8117:9:12", + "type": "" + } + ], + "src": "8067:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8275:66:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8285:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8329:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "8298:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "8298:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "8285:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8255:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "8265:9:12", + "type": "" + } + ], + "src": "8215:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8425:66:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8435:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8479:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "8448:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "8448:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "8435:9:12" + } + ] + } + ] + }, + "name": "convert_t_contract$_IBEERC721_$1549_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8405:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "8415:9:12", + "type": "" + } + ], + "src": "8347:144:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8580:84:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8597:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8651:5:12" + } + ], + "functionName": { + "name": "convert_t_contract$_IBEERC721_$1549_to_t_address", + "nodeType": "YulIdentifier", + "src": "8602:48:12" + }, + "nodeType": "YulFunctionCall", + "src": "8602:55:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8590:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8590:68:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8590:68:12" + } + ] + }, + "name": "abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8568:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8575:3:12", + "type": "" + } + ], + "src": "8497:167:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8786:142:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8796:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8808:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8819:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8804:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8804:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8796:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8894:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8907:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8918:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8903:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8903:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "8832:61:12" + }, + "nodeType": "YulFunctionCall", + "src": "8832:89:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8832:89:12" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IBEERC721_$1549__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8758:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8770:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8781:4:12", + "type": "" + } + ], + "src": "8670:258:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8977:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9034:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9043:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9046:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9036:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9036:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9036:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9000:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9025:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9007:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9007:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8997:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "8997:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8990:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8990:43:12" + }, + "nodeType": "YulIf", + "src": "8987:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8970:5:12", + "type": "" + } + ], + "src": "8934:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9114:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9124:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9146:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "9133:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "9133:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9124:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9189:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "9162:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "9162:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9162:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9092:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9100:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9108:5:12", + "type": "" + } + ], + "src": "9062:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9290:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9336:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "9338:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "9338:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9338:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9311:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9320:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9307:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9307:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9332:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "9303:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9303:32:12" + }, + "nodeType": "YulIf", + "src": "9300:119:12" + }, + { + "nodeType": "YulBlock", + "src": "9429:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9444:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9458:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9448:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9473:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9508:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9519:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9504:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9504:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9528:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nodeType": "YulIdentifier", + "src": "9483:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "9483:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9473:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "9556:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9571:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9585:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9575:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9601:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9636:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "9647:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9632:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9632:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "9656:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "9611:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "9611:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9601:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9252:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "9263:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9275:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9283:6:12", + "type": "" + } + ], + "src": "9207:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9752:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9769:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9792:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "9774:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9774:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9762:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9762:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9762:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9740:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9747:3:12", + "type": "" + } + ], + "src": "9687:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9909:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9919:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9931:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9942:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9927:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9927:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9919:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9999:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10012:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10023:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10008:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10008:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9955:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "9955:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9955:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9881:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9893:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9904:4:12", + "type": "" + } + ], + "src": "9811:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10122:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10168:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10170:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "10170:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10170:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10143:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10152:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10139:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10139:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10164:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10135:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10135:32:12" + }, + "nodeType": "YulIf", + "src": "10132:119:12" + }, + { + "nodeType": "YulBlock", + "src": "10261:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10276:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10290:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10280:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10305:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10340:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10351:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10336:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10336:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10360:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "10315:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "10315:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10305:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "10388:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10403:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10417:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10407:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10433:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10468:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10479:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10464:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10464:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10488:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10443:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "10443:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10433:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10084:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10095:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10107:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10115:6:12", + "type": "" + } + ], + "src": "10039:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10585:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10631:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "10633:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "10633:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10633:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10606:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10615:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10602:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10602:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10627:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "10598:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10598:32:12" + }, + "nodeType": "YulIf", + "src": "10595:119:12" + }, + { + "nodeType": "YulBlock", + "src": "10724:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10739:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10753:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10743:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10768:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10803:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10814:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10799:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10799:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "10823:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "10778:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "10778:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10768:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10555:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "10566:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10578:6:12", + "type": "" + } + ], + "src": "10519:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10882:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10899:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10902:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10892:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10892:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10892:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10996:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10999:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10989:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10989:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10989:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11020:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11023:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11013:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11013:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11013:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "10854:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11068:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11085:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11088:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11078:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11078:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11078:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11182:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11185:4:12", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11175:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11175:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11175:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11206:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11209:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11199:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11199:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11199:15:12" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "11040:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11254:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11271:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11274:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11264:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11264:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11264:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11368:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11371:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11361:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11361:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11361:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11392:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11395:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "11385:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11385:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11385:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "11226:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11455:190:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11465:33:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11492:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "11474:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "11474:24:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11465:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11588:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "11590:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "11590:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11590:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11513:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11520:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "11510:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "11510:77:12" + }, + "nodeType": "YulIf", + "src": "11507:103:12" + }, + { + "nodeType": "YulAssignment", + "src": "11619:20:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11630:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11637:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11626:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11626:13:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "11619:3:12" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11441:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "11451:3:12", + "type": "" + } + ], + "src": "11412:233:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11747:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11764:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "11769:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11757:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11757:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11757:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "11785:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11804:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11809:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11800:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11800:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "11785:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11719:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "11724:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "11735:11:12", + "type": "" + } + ], + "src": "11651:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11932:72:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11954:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11962:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11950:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11950:14:12" + }, + { + "hexValue": "4d696e7461626c6520636f756e74206973206e6f7420656e6f756768", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11966:30:12", + "type": "", + "value": "Mintable count is not enough" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11943:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11943:54:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11943:54:12" + } + ] + }, + "name": "store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11924:6:12", + "type": "" + } + ], + "src": "11826:178:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12156:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12166:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12232:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12237:2:12", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12173:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "12173:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12166:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12338:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08", + "nodeType": "YulIdentifier", + "src": "12249:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "12249:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12249:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "12351:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12362:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12367:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12358:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12358:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12351:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12144:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12152:3:12", + "type": "" + } + ], + "src": "12010:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12553:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12563:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12575:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12586:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12571:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12571:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12563:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12610:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12621:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12606:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12606:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12629:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12635:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12625:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12625:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12599:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12599:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12599:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "12655:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12789:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12663:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "12663:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12655:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12533:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12548:4:12", + "type": "" + } + ], + "src": "12382:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12933:206:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12943:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12955:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12966:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12951:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12951:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12943:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13023:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13036:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13047:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13032:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13032:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12979:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "12979:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12979:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13104:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13117:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13128:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13113:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13113:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "13060:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "13060:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13060:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12897:9:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12909:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12917:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12928:4:12", + "type": "" + } + ], + "src": "12807:332:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13234:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13251:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13254:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "13244:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13244:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13244:12:12" + } + ] + }, + "name": "revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec", + "nodeType": "YulFunctionDefinition", + "src": "13145:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13319:103:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "13342:3:12" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "13347:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13352:6:12" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "13329:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "13329:30:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13329:30:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "13400:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13405:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13396:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13396:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13414:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13389:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13389:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13389:27:12" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "13301:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "13306:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13311:6:12", + "type": "" + } + ], + "src": "13268:154:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13590:405:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13600:93:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13681:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13686:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13607:73:12" + }, + "nodeType": "YulFunctionCall", + "src": "13607:86:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13600:3:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13785:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec", + "nodeType": "YulIdentifier", + "src": "13787:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "13787:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13787:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13709:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13717:66:12", + "type": "", + "value": "0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13706:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "13706:78:12" + }, + "nodeType": "YulIf", + "src": "13703:165:12" + }, + { + "nodeType": "YulAssignment", + "src": "13877:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13891:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13899:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "13887:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13887:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13877:6:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "13938:5:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13945:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13950:6:12" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "13914:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "13914:43:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13914:43:12" + }, + { + "nodeType": "YulAssignment", + "src": "13966:23:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13977:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13982:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13973:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13973:16:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13966:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "13563:5:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13570:6:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13578:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13586:3:12", + "type": "" + } + ], + "src": "13458:537:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14237:418:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14247:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14259:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14270:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14255:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14255:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14247:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14294:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14305:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14290:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14290:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14313:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14319:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14309:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14309:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14283:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14283:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14283:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "14339:116:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14441:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14450:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14347:93:12" + }, + "nodeType": "YulFunctionCall", + "src": "14347:108:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14339:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14476:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14487:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14472:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14472:18:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14496:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14502:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14492:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14492:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14465:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14465:48:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14465:48:12" + }, + { + "nodeType": "YulAssignment", + "src": "14522:126:12", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14626:6:12" + }, + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "14634:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14643:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14530:95:12" + }, + "nodeType": "YulFunctionCall", + "src": "14530:118:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14522:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14193:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "14205:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14213:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14221:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14232:4:12", + "type": "" + } + ], + "src": "14001:654:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14767:128:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14789:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14797:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14785:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14785:14:12" + }, + { + "hexValue": "416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14801:34:12", + "type": "", + "value": "AccessControl: can only renounce" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14778:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14778:58:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14778:58:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14857:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14865:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14853:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14853:15:12" + }, + { + "hexValue": "20726f6c657320666f722073656c66", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14870:17:12", + "type": "", + "value": " roles for self" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14846:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14846:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14846:42:12" + } + ] + }, + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14759:6:12", + "type": "" + } + ], + "src": "14661:234:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15047:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15057:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15123:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15128:2:12", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15064:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "15064:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15057:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15229:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b", + "nodeType": "YulIdentifier", + "src": "15140:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "15140:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15140:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "15242:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15253:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15258:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15249:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15249:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15242:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15035:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15043:3:12", + "type": "" + } + ], + "src": "14901:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15444:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15454:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15466:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15477:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15462:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15462:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15454:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15501:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15512:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15497:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15497:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15520:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15526:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15516:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15516:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15490:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "15490:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15490:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "15546:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15680:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15554:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "15554:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15546:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15424:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15439:4:12", + "type": "" + } + ], + "src": "15273:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15812:34:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15822:18:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15837:3:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "15822:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "15784:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15789:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "15800:11:12", + "type": "" + } + ], + "src": "15698:148:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15958:67:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15980:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15988:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15976:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15976:14:12" + }, + { + "hexValue": "416363657373436f6e74726f6c3a206163636f756e7420", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15992:25:12", + "type": "", + "value": "AccessControl: account " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15969:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "15969:49:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15969:49:12" + } + ] + }, + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15950:6:12", + "type": "" + } + ], + "src": "15852:173:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16195:238:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16205:92:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16289:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16294:2:12", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "16212:76:12" + }, + "nodeType": "YulFunctionCall", + "src": "16212:85:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16205:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16395:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874", + "nodeType": "YulIdentifier", + "src": "16306:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "16306:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16306:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "16408:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16419:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16424:2:12", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16415:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16415:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16408:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16183:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16191:3:12", + "type": "" + } + ], + "src": "16031:402:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16498:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16509:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16525:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16519:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "16519:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16509:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16481:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16491:6:12", + "type": "" + } + ], + "src": "16439:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16593:258:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16603:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16612:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "16607:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16672:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "16697:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16702:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16693:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16693:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "16716:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16721:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16712:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16712:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16706:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "16706:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16686:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "16686:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16686:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16633:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16636:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "16630:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "16630:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "16644:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16646:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16655:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16658:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16651:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16651:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16646:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "16626:3:12", + "statements": [] + }, + "src": "16622:113:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16769:76:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "16819:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16824:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16815:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16815:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16833:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16808:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "16808:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16808:27:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "16750:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16753:6:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "16747:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "16747:13:12" + }, + "nodeType": "YulIf", + "src": "16744:101:12" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "16575:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "16580:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16585:6:12", + "type": "" + } + ], + "src": "16544:307:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16967:267:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16977:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17024:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "16991:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "16991:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16981:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17039:96:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17123:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17128:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "17046:76:12" + }, + "nodeType": "YulFunctionCall", + "src": "17046:89:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17039:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "17170:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17177:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17166:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17166:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17184:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17189:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "17144:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "17144:52:12" + }, + "nodeType": "YulExpressionStatement", + "src": "17144:52:12" + }, + { + "nodeType": "YulAssignment", + "src": "17205:23:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17216:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "17221:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17212:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17212:16:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17205:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16948:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16955:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16963:3:12", + "type": "" + } + ], + "src": "16857:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17346:61:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17368:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17376:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17364:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17364:14:12" + }, + { + "hexValue": "206973206d697373696e6720726f6c6520", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17380:19:12", + "type": "", + "value": " is missing role " + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17357:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "17357:43:12" + }, + "nodeType": "YulExpressionStatement", + "src": "17357:43:12" + } + ] + }, + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17338:6:12", + "type": "" + } + ], + "src": "17240:167:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17577:238:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17587:92:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17671:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17676:2:12", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "17594:76:12" + }, + "nodeType": "YulFunctionCall", + "src": "17594:85:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17587:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17777:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69", + "nodeType": "YulIdentifier", + "src": "17688:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "17688:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "17688:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "17790:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17801:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17806:2:12", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17797:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17797:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17790:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17565:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17573:3:12", + "type": "" + } + ], + "src": "17413:402:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18207:581:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18218:155:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18369:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "18225:142:12" + }, + "nodeType": "YulFunctionCall", + "src": "18225:148:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18218:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18383:102:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "18472:6:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18481:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "18390:81:12" + }, + "nodeType": "YulFunctionCall", + "src": "18390:95:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18383:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18495:155:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18646:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "18502:142:12" + }, + "nodeType": "YulFunctionCall", + "src": "18502:148:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18495:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18660:102:12", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "18749:6:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18758:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "18667:81:12" + }, + "nodeType": "YulFunctionCall", + "src": "18667:95:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18660:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18772:10:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18779:3:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18772:3:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18178:3:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "18184:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "18192:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18203:3:12", + "type": "" + } + ], + "src": "17821:967:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18842:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18852:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18870:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18877:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18866:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18866:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18886:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "18882:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18882:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "18862:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18862:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "18852:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18825:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "18835:6:12", + "type": "" + } + ], + "src": "18794:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18994:272:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "19004:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19051:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "19018:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "19018:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "19008:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "19066:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19132:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "19137:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19073:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "19073:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19066:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "19179:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19186:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19175:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19175:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19193:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "19198:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "19153:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "19153:52:12" + }, + "nodeType": "YulExpressionStatement", + "src": "19153:52:12" + }, + { + "nodeType": "YulAssignment", + "src": "19214:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19225:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "19252:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "19230:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "19230:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19221:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19221:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19214:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18975:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18982:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18990:3:12", + "type": "" + } + ], + "src": "18902:364:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19390:195:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19400:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19412:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19423:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19408:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19408:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19400:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19447:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19458:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19443:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19443:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19466:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19472:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19462:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19462:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19436:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "19436:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "19436:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "19492:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "19564:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19573:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19500:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "19500:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19492:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19362:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "19374:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19385:4:12", + "type": "" + } + ], + "src": "19272:313:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19639:300:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19649:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19672:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "19654:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "19654:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19649:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "19683:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19706:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "19688:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "19688:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19683:1:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19881:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "19883:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "19883:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "19883:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19793:1:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "19786:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "19786:9:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "19779:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "19779:17:12" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19801:1:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19808:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19876:1:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "19804:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19804:74:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "19798:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "19798:81:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "19775:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19775:105:12" + }, + "nodeType": "YulIf", + "src": "19772:131:12" + }, + { + "nodeType": "YulAssignment", + "src": "19913:20:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19928:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "19931:1:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "19924:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "19924:9:12" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "19913:7:12" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "19622:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "19625:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "19631:7:12", + "type": "" + } + ], + "src": "19591:348:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19989:261:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19999:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "20022:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "20004:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "20004:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "19999:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "20033:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "20056:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "20038:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "20038:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "20033:1:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20196:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "20198:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "20198:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "20198:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "20117:1:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20124:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "20192:1:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20120:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "20120:74:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "20114:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "20114:81:12" + }, + "nodeType": "YulIf", + "src": "20111:107:12" + }, + { + "nodeType": "YulAssignment", + "src": "20228:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "20239:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "20242:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20235:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "20235:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "20228:3:12" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "19976:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "19979:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "19985:3:12", + "type": "" + } + ], + "src": "19945:305:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20299:128:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20309:33:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20336:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "20318:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "20318:24:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20309:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20370:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "20372:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "20372:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "20372:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20357:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20364:4:12", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "20354:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "20354:15:12" + }, + "nodeType": "YulIf", + "src": "20351:41:12" + }, + { + "nodeType": "YulAssignment", + "src": "20401:20:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "20412:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20419:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20408:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "20408:13:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "20401:3:12" + } + ] + } + ] + }, + "name": "decrement_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "20285:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "20295:3:12", + "type": "" + } + ], + "src": "20256:171:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20539:76:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20561:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20569:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20557:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "20557:14:12" + }, + { + "hexValue": "537472696e67733a20686578206c656e67746820696e73756666696369656e74", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20573:34:12", + "type": "", + "value": "Strings: hex length insufficient" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20550:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "20550:58:12" + }, + "nodeType": "YulExpressionStatement", + "src": "20550:58:12" + } + ] + }, + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20531:6:12", + "type": "" + } + ], + "src": "20433:182:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20767:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20777:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20843:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20848:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20784:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "20784:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20777:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20949:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2", + "nodeType": "YulIdentifier", + "src": "20860:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "20860:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "20860:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "20962:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20973:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20978:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20969:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "20969:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20962:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20755:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20763:3:12", + "type": "" + } + ], + "src": "20621:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21164:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21174:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21186:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21197:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21182:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "21182:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21174:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21221:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21232:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21217:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "21217:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21240:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21246:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21236:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "21236:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21210:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "21210:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "21210:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "21266:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21400:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21274:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "21274:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21266:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21144:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21159:4:12", + "type": "" + } + ], + "src": "20993:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21463:146:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21473:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21496:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21478:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "21478:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21473:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "21507:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21530:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21512:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "21512:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21507:1:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21554:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "21556:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "21556:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "21556:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21548:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21551:1:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "21545:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "21545:8:12" + }, + "nodeType": "YulIf", + "src": "21542:34:12" + }, + { + "nodeType": "YulAssignment", + "src": "21586:17:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21598:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "21601:1:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21594:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "21594:9:12" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "21586:4:12" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21449:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21452:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "21458:4:12", + "type": "" + } + ], + "src": "21418:191:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21643:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21660:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21663:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21653:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "21653:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "21653:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21757:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21760:4:12", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21750:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "21750:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "21750:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21781:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21784:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "21774:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "21774:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "21774:15:12" + } + ] + }, + "name": "panic_error_0x31", + "nodeType": "YulFunctionDefinition", + "src": "21615:180:12" + } + ] + }, + "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_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(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_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\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 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 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 array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := 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_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$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_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\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_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 cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(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_bytes32(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 function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\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 // 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 function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IBEERC721_$1549_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IBEERC721_$1549_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IBEERC721_$1549__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IBEERC721_$1549_to_t_address_fromStack(value0, add(headStart, 0))\n\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 abi_decode_tuple_t_bytes32t_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_bytes32(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_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_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_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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_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_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(memPtr) {\n\n mstore(add(memPtr, 0), \"Mintable count is not enough\")\n\n }\n\n function abi_encode_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08__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_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__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_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() {\n revert(0, 0)\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 // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n\n if gt(length, 0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { revert_error_d0468cefdb41083d2ff66f1e66140f10c9da08cd905521a779422e76a84d11ec() }\n length := mul(length, 0x20)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_calldata_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n mstore(add(memPtr, 32), \" roles for self\")\n\n }\n\n function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__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_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n mstore(add(memPtr, 0), \"AccessControl: account \")\n\n }\n\n function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n end := add(pos, 23)\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n mstore(add(memPtr, 0), \" is missing role \")\n\n }\n\n function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\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 decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n }\n\n function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__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_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "165:7509:11:-:0;;;1077:622;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1193:37;257:23;;1193:13;;;:37;;:::i;:::-;1236:38;322:24;257:23;1236:13;;;:38;;:::i;:::-;1352:36;257:23;1375:12;:10;;;:12;;:::i;:::-;1352:10;;;:36;;:::i;:::-;1394:37;257:23;1425:4;1394:10;;;:37;;:::i;:::-;1497:9;1492:109;1516:14;:21;1512:1;:25;1492:109;;;1552:42;322:24;1576:14;1591:1;1576:17;;;;;;;;:::i;:::-;;;;;;;;1552:10;;;:42;;:::i;:::-;1539:3;;;;:::i;:::-;;;1492:109;;;;1683:10;1667:3;;:27;;;;;;;;;;;;;;;;;;1077:622;;165:7509;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;640:96:5:-;693:7;719:10;712:17;;640:96;:::o;6257:110:0:-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;;;;;:31;;;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:9:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;;;:50;;:::i;:::-;7698:57;;7612:150;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:404:9:-;1760:4;1781:21;1791:3;1796:5;1781:9;;;:21;;:::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;7:75:12:-;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:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:102;1009:6;1060:2;1056:7;1051:2;1044:5;1040:14;1036:28;1026:38;;968:102;;;:::o;1076:180::-;1124:77;1121:1;1114:88;1221:4;1218:1;1211:15;1245:4;1242:1;1235:15;1262:281;1345:27;1367:4;1345:27;:::i;:::-;1337:6;1333:40;1475:6;1463:10;1460:22;1439:18;1427:10;1424:34;1421:62;1418:88;;;1486:18;;:::i;:::-;1418:88;1526:10;1522:2;1515:22;1305:238;1262:281;;:::o;1549:129::-;1583:6;1610:20;;:::i;:::-;1600:30;;1639:33;1667:4;1659:6;1639:33;:::i;:::-;1549:129;;;:::o;1684:311::-;1761:4;1851:18;1843:6;1840:30;1837:56;;;1873:18;;:::i;:::-;1837:56;1923:4;1915:6;1911:17;1903:25;;1983:4;1977;1973:15;1965:23;;1684:311;;;:::o;2001:117::-;2110:1;2107;2100:12;2141:732;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:710::-;3391:6;3399;3448:2;3436:9;3427:7;3423:23;3419:32;3416:119;;;3454:79;;:::i;:::-;3416:119;3574:1;3599:64;3655:7;3646:6;3635:9;3631:22;3599:64;:::i;:::-;3589:74;;3545:128;3733:2;3722:9;3718:18;3712:25;3764:18;3756:6;3753:30;3750:117;;;3786:79;;:::i;:::-;3750:117;3891:89;3972:7;3963:6;3952:9;3948:22;3891:89;:::i;:::-;3881:99;;3683:307;3287:710;;;;;:::o;4003:180::-;4051:77;4048:1;4041:88;4148:4;4145:1;4138:15;4172:4;4169:1;4162:15;4189:180;4237:77;4234:1;4227:88;4334:4;4331:1;4324:15;4358:4;4355:1;4348:15;4375:77;4412:7;4441:5;4430:16;;4375:77;;;:::o;4458:233::-;4497:3;4520:24;4538:5;4520:24;:::i;:::-;4511:33;;4566:66;4559:5;4556:77;4553:103;;;4636:18;;:::i;:::-;4553:103;4683:1;4676:5;4672:13;4665:20;;4458:233;;;:::o;165:7509:11:-;;;;;;;", + "deployedSourceMap": "165:7509:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6731:941:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:649;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2799:1116:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:214:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;500:20:11;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;284:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;220:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4602:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1431:151:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:48:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;454:41:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;634:212:1;719:4;757:42;742:57;;;:11;:57;;;;:97;;;;803:36;827:11;803:23;:36::i;:::-;742:97;735:104;;634:212;;;:::o;6731:941:11:-;6804:16;6881:21;6905:11;:18;6917:5;6905:18;;;;;;;;;;;;;;;6881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7026:31;7074:4;:11;7060:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7026:60;;7135:13;7204:9;7199:398;7223:4;:11;7219:1;:15;7199:398;;;7299:13;7315:4;7320:1;7315:7;;;;;;;;:::i;:::-;;;;;;;;7299:23;;7385:9;:16;7395:5;7385:16;;;;;;;;;;;;;;;;;;;;;7380:211;;7521:5;7497:14;7512:5;7497:21;;;;;;;;:::i;:::-;;;;;;;:29;;;;;7575:7;;;;;:::i;:::-;;;;7380:211;7241:356;7236:3;;;;;:::i;:::-;;;;7199:398;;;;7653:14;7646:21;;;;;6731:941;;;:::o;5487:649::-;5549:7;5617:21;5641:11;:18;5653:5;5641:18;;;;;;;;;;;;;;;5617:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5697:13;5766:9;5761:314;5785:4;:11;5781:1;:15;5761:314;;;5861:14;5878:4;5883:1;5878:7;;;;;;;;:::i;:::-;;;;;;;;5861:24;;5948:9;:17;5958:6;5948:17;;;;;;;;;;;;;;;;;;;;;5943:126;;6053:7;;;;;:::i;:::-;;;;5943:126;5803:272;5798:3;;;;;:::i;:::-;;;;5761:314;;;;6126:5;6119:12;;;;5487:649;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;4387:145::-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;2799:1116:11:-;2046:37;322:24;2070:12;:10;:12::i;:::-;2046:10;:37::i;:::-;2983:23:::1;3000:5;2983:16;:23::i;:::-;2965:7;;:14;;:41;;2950:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;3102:21;3126:11;:18;3138:5;3126:18;;;;;;;;;;;;;;;3102:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:13;3201:26:::0;3244:7:::1;;:14;;3230:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3201:58;;3313:9;3308:489;3332:4;:11;3328:1;:15;3308:489;;;3358:14;3375:4;3380:1;3375:7;;;;;;;;:::i;:::-;;;;;;;;3358:24;;3434:9;:17;3444:6;3434:17;;;;;;;;;;;;;;;;;;;;;3429:362;;3530:13;3546:7;;3554:5;3546:14;;;;;;;:::i;:::-;;;;;;;;3530:30;;3647:6;3628:9;3638:5;3628:16;;;;;;;;:::i;:::-;;;;;;;:25;;;::::0;::::1;3683:4;3663:9;:17;3673:6;3663:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3743:3;;;;;;;;;;;:8;;;3752:5;3759;3743:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3775:7;;;;;:::i;:::-;;;;3453:338;3429:362;3350:447;3345:3;;;;;:::i;:::-;;;;3308:489;;;;3885:3;;;;;;;;;;;3863:47;;3870:5;3863:47;;;3891:9;3902:7;;3863:47;;;;;;;;:::i;:::-;;;;;;;;2895:1020;;;2799:1116:::0;;;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;500:20:11:-;;;;;;;;;;;;;:::o;284:62::-;322:24;284:62;:::o;220:60::-;257:23;220:60;:::o;4602:317::-;2046:37;322:24;2070:12;:10;:12::i;:::-;2046:10;:37::i;:::-;4750:9:::1;4745:170;4769:7;;:14;;4765:1;:18;4745:170;;;4873:11;:18;4885:5;4873:18;;;;;;;;;;;;;;;4897:7;;4905:1;4897:10;;;;;;;:::i;:::-;;;;;;;;4873:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4785:3;;;;;:::i;:::-;;;;4745:170;;;;4602:317:::0;;;:::o;1431:151:1:-;1521:7;1547:28;1569:5;1547:12;:18;1560:4;1547:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;1540:35;;1431:151;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;2027:49::-;2072:4;2027:49;;;:::o;380:48:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;454:41:11:-;;;;;;;;;;;;;;;;;;;;;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:9:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;640:96:5:-;693:7;719:10;712:17;;640:96;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;1978:166;;:::o;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:34;2389:7;2363:12;:18;2376:4;2363:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;2233:171;;:::o;8870:156:9:-;8944:7;8994:22;8998:3;:10;;9010:5;8994:3;:22::i;:::-;8986:31;;8963:56;;8870:156;;;;:::o;8413:115::-;8476:7;8502:19;8510:3;:10;;8502:7;:19::i;:::-;8495:26;;8413:115;;;:::o;1697:404::-;1760:4;1781:21;1791:3;1796:5;1781:9;:21::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;829:155:7:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1588:441:6:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;7219:234:0:-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;7930:156:9:-;8003:4;8026:53;8034:3;:10;;8070:5;8054:23;;8046:32;;8026:7;:53::i;:::-;8019:60;;7930:156;;;;:::o;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;;4481:25;;4395:118;;;;:::o;3946:107::-;4002:7;4028:3;:11;;:18;;;;4021:25;;3946:107;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;2269:1388::-;2335:4;2451:18;2472:3;:12;;:19;2485:5;2472:19;;;;;;;;;;;;2451:40;;2520:1;2506:10;:15;2502:1149;;2875:21;2912:1;2899:10;:14;;;;:::i;:::-;2875:38;;2927:17;2968:1;2947:3;:11;;:18;;;;:22;;;;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;3314:10;3288:3;:12;;:23;3301:9;3288:23;;;;;;;;;;;:36;;;;3016:366;2984:398;3460:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;2269:1388;;;;;:::o;88:117:12:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:114::-;2427:6;2461:5;2455:12;2445:22;;2360:114;;;:::o;2480:184::-;2579:11;2613:6;2608:3;2601:19;2653:4;2648:3;2644:14;2629:29;;2480:184;;;;:::o;2670:132::-;2737:4;2760:3;2752:11;;2790:4;2785:3;2781:14;2773:22;;2670:132;;;:::o;2808:77::-;2845:7;2874:5;2863:16;;2808:77;;;:::o;2891:108::-;2968:24;2986:5;2968:24;:::i;:::-;2963:3;2956:37;2891:108;;:::o;3005:179::-;3074:10;3095:46;3137:3;3129:6;3095:46;:::i;:::-;3173:4;3168:3;3164:14;3150:28;;3005:179;;;;:::o;3190:113::-;3260:4;3292;3287:3;3283:14;3275:22;;3190:113;;;:::o;3339:732::-;3458:3;3487:54;3535:5;3487:54;:::i;:::-;3557:86;3636:6;3631:3;3557:86;:::i;:::-;3550:93;;3667:56;3717:5;3667:56;:::i;:::-;3746:7;3777:1;3762:284;3787:6;3784:1;3781:13;3762:284;;;3863:6;3857:13;3890:63;3949:3;3934:13;3890:63;:::i;:::-;3883:70;;3976:60;4029:6;3976:60;:::i;:::-;3966:70;;3822:224;3809:1;3806;3802:9;3797:14;;3762:284;;;3766:14;4062:3;4055:10;;3463:608;;;3339:732;;;;:::o;4077:373::-;4220:4;4258:2;4247:9;4243:18;4235:26;;4307:9;4301:4;4297:20;4293:1;4282:9;4278:17;4271:47;4335:108;4438:4;4429:6;4335:108;:::i;:::-;4327:116;;4077:373;;;;:::o;4456:118::-;4543:24;4561:5;4543:24;:::i;:::-;4538:3;4531:37;4456:118;;:::o;4580:222::-;4673:4;4711:2;4700:9;4696:18;4688:26;;4724:71;4792:1;4781:9;4777:17;4768:6;4724:71;:::i;:::-;4580:222;;;;:::o;4808:77::-;4845:7;4874:5;4863:16;;4808:77;;;:::o;4891:122::-;4964:24;4982:5;4964:24;:::i;:::-;4957:5;4954:35;4944:63;;5003:1;5000;4993:12;4944:63;4891:122;:::o;5019:139::-;5065:5;5103:6;5090:20;5081:29;;5119:33;5146:5;5119:33;:::i;:::-;5019:139;;;;:::o;5164:329::-;5223:6;5272:2;5260:9;5251:7;5247:23;5243:32;5240:119;;;5278:79;;:::i;:::-;5240:119;5398:1;5423:53;5468:7;5459:6;5448:9;5444:22;5423:53;:::i;:::-;5413:63;;5369:117;5164:329;;;;:::o;5499:118::-;5586:24;5604:5;5586:24;:::i;:::-;5581:3;5574:37;5499:118;;:::o;5623:222::-;5716:4;5754:2;5743:9;5739:18;5731:26;;5767:71;5835:1;5824:9;5820:17;5811:6;5767:71;:::i;:::-;5623:222;;;;:::o;5851:474::-;5919:6;5927;5976:2;5964:9;5955:7;5951:23;5947:32;5944:119;;;5982:79;;:::i;:::-;5944:119;6102:1;6127:53;6172:7;6163:6;6152:9;6148:22;6127:53;:::i;:::-;6117:63;;6073:117;6229:2;6255:53;6300:7;6291:6;6280:9;6276:22;6255:53;:::i;:::-;6245:63;;6200:118;5851:474;;;;;:::o;6331:117::-;6440:1;6437;6430:12;6454:117;6563:1;6560;6553:12;6577:117;6686:1;6683;6676:12;6717:568;6790:8;6800:6;6850:3;6843:4;6835:6;6831:17;6827:27;6817:122;;6858:79;;:::i;:::-;6817:122;6971:6;6958:20;6948:30;;7001:18;6993:6;6990:30;6987:117;;;7023:79;;:::i;:::-;6987:117;7137:4;7129:6;7125:17;7113:29;;7191:3;7183:4;7175:6;7171:17;7161:8;7157:32;7154:41;7151:128;;;7198:79;;:::i;:::-;7151:128;6717:568;;;;;:::o;7291:704::-;7386:6;7394;7402;7451:2;7439:9;7430:7;7426:23;7422:32;7419:119;;;7457:79;;:::i;:::-;7419:119;7577:1;7602:53;7647:7;7638:6;7627:9;7623:22;7602:53;:::i;:::-;7592:63;;7548:117;7732:2;7721:9;7717:18;7704:32;7763:18;7755:6;7752:30;7749:117;;;7785:79;;:::i;:::-;7749:117;7898:80;7970:7;7961:6;7950:9;7946:22;7898:80;:::i;:::-;7880:98;;;;7675:313;7291:704;;;;;:::o;8001:60::-;8029:3;8050:5;8043:12;;8001:60;;;:::o;8067:142::-;8117:9;8150:53;8168:34;8177:24;8195:5;8177:24;:::i;:::-;8168:34;:::i;:::-;8150:53;:::i;:::-;8137:66;;8067:142;;;:::o;8215:126::-;8265:9;8298:37;8329:5;8298:37;:::i;:::-;8285:50;;8215:126;;;:::o;8347:144::-;8415:9;8448:37;8479:5;8448:37;:::i;:::-;8435:50;;8347:144;;;:::o;8497:167::-;8602:55;8651:5;8602:55;:::i;:::-;8597:3;8590:68;8497:167;;:::o;8670:258::-;8781:4;8819:2;8808:9;8804:18;8796:26;;8832:89;8918:1;8907:9;8903:17;8894:6;8832:89;:::i;:::-;8670:258;;;;:::o;8934:122::-;9007:24;9025:5;9007:24;:::i;:::-;9000:5;8997:35;8987:63;;9046:1;9043;9036:12;8987:63;8934:122;:::o;9062:139::-;9108:5;9146:6;9133:20;9124:29;;9162:33;9189:5;9162:33;:::i;:::-;9062:139;;;;:::o;9207:474::-;9275:6;9283;9332:2;9320:9;9311:7;9307:23;9303:32;9300:119;;;9338:79;;:::i;:::-;9300:119;9458:1;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9429:117;9585:2;9611:53;9656:7;9647:6;9636:9;9632:22;9611:53;:::i;:::-;9601:63;;9556:118;9207:474;;;;;:::o;9687:118::-;9774:24;9792:5;9774:24;:::i;:::-;9769:3;9762:37;9687:118;;:::o;9811:222::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9955:71;10023:1;10012:9;10008:17;9999:6;9955:71;:::i;:::-;9811:222;;;;:::o;10039:474::-;10107:6;10115;10164:2;10152:9;10143:7;10139:23;10135:32;10132:119;;;10170:79;;:::i;:::-;10132:119;10290:1;10315:53;10360:7;10351:6;10340:9;10336:22;10315:53;:::i;:::-;10305:63;;10261:117;10417:2;10443:53;10488:7;10479:6;10468:9;10464:22;10443:53;:::i;:::-;10433:63;;10388:118;10039:474;;;;;:::o;10519:329::-;10578:6;10627:2;10615:9;10606:7;10602:23;10598:32;10595:119;;;10633:79;;:::i;:::-;10595:119;10753:1;10778:53;10823:7;10814:6;10803:9;10799:22;10778:53;:::i;:::-;10768:63;;10724:117;10519:329;;;;:::o;10854:180::-;10902:77;10899:1;10892:88;10999:4;10996:1;10989:15;11023:4;11020:1;11013:15;11040:180;11088:77;11085:1;11078:88;11185:4;11182:1;11175:15;11209:4;11206:1;11199:15;11226:180;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:233;11451:3;11474:24;11492:5;11474:24;:::i;:::-;11465:33;;11520:66;11513:5;11510:77;11507:103;;;11590:18;;:::i;:::-;11507:103;11637:1;11630:5;11626:13;11619:20;;11412:233;;;:::o;11651:169::-;11735:11;11769:6;11764:3;11757:19;11809:4;11804:3;11800:14;11785:29;;11651:169;;;;:::o;11826:178::-;11966:30;11962:1;11954:6;11950:14;11943:54;11826:178;:::o;12010:366::-;12152:3;12173:67;12237:2;12232:3;12173:67;:::i;:::-;12166:74;;12249:93;12338:3;12249:93;:::i;:::-;12367:2;12362:3;12358:12;12351:19;;12010:366;;;:::o;12382:419::-;12548:4;12586:2;12575:9;12571:18;12563:26;;12635:9;12629:4;12625:20;12621:1;12610:9;12606:17;12599:47;12663:131;12789:4;12663:131;:::i;:::-;12655:139;;12382:419;;;:::o;12807:332::-;12928:4;12966:2;12955:9;12951:18;12943:26;;12979:71;13047:1;13036:9;13032:17;13023:6;12979:71;:::i;:::-;13060:72;13128:2;13117:9;13113:18;13104:6;13060:72;:::i;:::-;12807:332;;;;;:::o;13145:117::-;13254:1;13251;13244:12;13268:154;13352:6;13347:3;13342;13329:30;13414:1;13405:6;13400:3;13396:16;13389:27;13268:154;;;:::o;13458:537::-;13586:3;13607:86;13686:6;13681:3;13607:86;:::i;:::-;13600:93;;13717:66;13709:6;13706:78;13703:165;;;13787:79;;:::i;:::-;13703:165;13899:4;13891:6;13887:17;13877:27;;13914:43;13950:6;13945:3;13938:5;13914:43;:::i;:::-;13982:6;13977:3;13973:16;13966:23;;13458:537;;;;;:::o;14001:654::-;14232:4;14270:2;14259:9;14255:18;14247:26;;14319:9;14313:4;14309:20;14305:1;14294:9;14290:17;14283:47;14347:108;14450:4;14441:6;14347:108;:::i;:::-;14339:116;;14502:9;14496:4;14492:20;14487:2;14476:9;14472:18;14465:48;14530:118;14643:4;14634:6;14626;14530:118;:::i;:::-;14522:126;;14001:654;;;;;;:::o;14661:234::-;14801:34;14797:1;14789:6;14785:14;14778:58;14870:17;14865:2;14857:6;14853:15;14846:42;14661:234;:::o;14901:366::-;15043:3;15064:67;15128:2;15123:3;15064:67;:::i;:::-;15057:74;;15140:93;15229:3;15140:93;:::i;:::-;15258:2;15253:3;15249:12;15242:19;;14901:366;;;:::o;15273:419::-;15439:4;15477:2;15466:9;15462:18;15454:26;;15526:9;15520:4;15516:20;15512:1;15501:9;15497:17;15490:47;15554:131;15680:4;15554:131;:::i;:::-;15546:139;;15273:419;;;:::o;15698:148::-;15800:11;15837:3;15822:18;;15698:148;;;;:::o;15852:173::-;15992:25;15988:1;15980:6;15976:14;15969:49;15852:173;:::o;16031:402::-;16191:3;16212:85;16294:2;16289:3;16212:85;:::i;:::-;16205:92;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16031:402;;;:::o;16439:99::-;16491:6;16525:5;16519:12;16509:22;;16439:99;;;:::o;16544:307::-;16612:1;16622:113;16636:6;16633:1;16630:13;16622:113;;;16721:1;16716:3;16712:11;16706:18;16702:1;16697:3;16693:11;16686:39;16658:2;16655:1;16651:10;16646:15;;16622:113;;;16753:6;16750:1;16747:13;16744:101;;;16833:1;16824:6;16819:3;16815:16;16808:27;16744:101;16593:258;16544:307;;;:::o;16857:377::-;16963:3;16991:39;17024:5;16991:39;:::i;:::-;17046:89;17128:6;17123:3;17046:89;:::i;:::-;17039:96;;17144:52;17189:6;17184:3;17177:4;17170:5;17166:16;17144:52;:::i;:::-;17221:6;17216:3;17212:16;17205:23;;16967:267;16857:377;;;;:::o;17240:167::-;17380:19;17376:1;17368:6;17364:14;17357:43;17240:167;:::o;17413:402::-;17573:3;17594:85;17676:2;17671:3;17594:85;:::i;:::-;17587:92;;17688:93;17777:3;17688:93;:::i;:::-;17806:2;17801:3;17797:12;17790:19;;17413:402;;;:::o;17821:967::-;18203:3;18225:148;18369:3;18225:148;:::i;:::-;18218:155;;18390:95;18481:3;18472:6;18390:95;:::i;:::-;18383:102;;18502:148;18646:3;18502:148;:::i;:::-;18495:155;;18667:95;18758:3;18749:6;18667:95;:::i;:::-;18660:102;;18779:3;18772:10;;17821:967;;;;;:::o;18794:102::-;18835:6;18886:2;18882:7;18877:2;18870:5;18866:14;18862:28;18852:38;;18794:102;;;:::o;18902:364::-;18990:3;19018:39;19051:5;19018:39;:::i;:::-;19073:71;19137:6;19132:3;19073:71;:::i;:::-;19066:78;;19153:52;19198:6;19193:3;19186:4;19179:5;19175:16;19153:52;:::i;:::-;19230:29;19252:6;19230:29;:::i;:::-;19225:3;19221:39;19214:46;;18994:272;18902:364;;;;:::o;19272:313::-;19385:4;19423:2;19412:9;19408:18;19400:26;;19472:9;19466:4;19462:20;19458:1;19447:9;19443:17;19436:47;19500:78;19573:4;19564:6;19500:78;:::i;:::-;19492:86;;19272:313;;;;:::o;19591:348::-;19631:7;19654:20;19672:1;19654:20;:::i;:::-;19649:25;;19688:20;19706:1;19688:20;:::i;:::-;19683:25;;19876:1;19808:66;19804:74;19801:1;19798:81;19793:1;19786:9;19779:17;19775:105;19772:131;;;19883:18;;:::i;:::-;19772:131;19931:1;19928;19924:9;19913:20;;19591:348;;;;:::o;19945:305::-;19985:3;20004:20;20022:1;20004:20;:::i;:::-;19999:25;;20038:20;20056:1;20038:20;:::i;:::-;20033:25;;20192:1;20124:66;20120:74;20117:1;20114:81;20111:107;;;20198:18;;:::i;:::-;20111:107;20242:1;20239;20235:9;20228:16;;19945:305;;;;:::o;20256:171::-;20295:3;20318:24;20336:5;20318:24;:::i;:::-;20309:33;;20364:4;20357:5;20354:15;20351:41;;;20372:18;;:::i;:::-;20351:41;20419:1;20412:5;20408:13;20401:20;;20256:171;;;:::o;20433:182::-;20573:34;20569:1;20561:6;20557:14;20550:58;20433:182;:::o;20621:366::-;20763:3;20784:67;20848:2;20843:3;20784:67;:::i;:::-;20777:74;;20860:93;20949:3;20860:93;:::i;:::-;20978:2;20973:3;20969:12;20962:19;;20621:366;;;:::o;20993:419::-;21159:4;21197:2;21186:9;21182:18;21174:26;;21246:9;21240:4;21236:20;21232:1;21221:9;21217:17;21210:47;21274:131;21400:4;21274:131;:::i;:::-;21266:139;;20993:419;;;:::o;21418:191::-;21458:4;21478:20;21496:1;21478:20;:::i;:::-;21473:25;;21512:20;21530:1;21512:20;:::i;:::-;21507:25;;21551:1;21548;21545:8;21542:34;;;21556:18;;:::i;:::-;21542:34;21601:1;21598;21594:9;21586:17;;21418:191;;;;:::o;21615:180::-;21663:77;21660:1;21653:88;21760:4;21757:1;21750:15;21784:4;21781:1;21774:15", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport \"../interfaces/IBEERC721.sol\";\n\ncontract NftDistributor is AccessControlEnumerable {\n bytes32 public constant ADMIN_ROLE = keccak256(\"ADMIN_ROLE\");\n bytes32 public constant MANAGE_ROLE = keccak256(\"MANAGE_ROLE\");\n\n // user address => nft ids\n mapping(address => uint256[]) public ownerToNFTs;\n // nft id => minted\n mapping(uint256 => bool) public nftMinted;\n\n IBEERC721 public nft;\n\n event Minted(\n address indexed user,\n address indexed nft,\n uint256[] nftSIds,\n uint256[] nftTIds\n );\n\n /**\n * @dev Contract constructor.\n *\n * Initializes the contract with the specified addresses and sets the admin and management roles.\n *\n * Parameters:\n * - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE\n * - _nftSource: The address of the source NFT that will check if user has mint permission.\n * - _manageAddress: The address that will have the MANAGE_ROLE assigned.\n */\n constructor(address _nftTarget, address[] memory _manageAddress) {\n // Set up the ADMIN_ROLE and MANAGE_ROLE\n _setRoleAdmin(ADMIN_ROLE, ADMIN_ROLE);\n _setRoleAdmin(MANAGE_ROLE, ADMIN_ROLE);\n\n // Grant the ADMIN_ROLE to the deployer and to the contract itself\n _setupRole(ADMIN_ROLE, _msgSender());\n _setupRole(ADMIN_ROLE, address(this));\n\n // Grant the MANAGE_ROLE to the specified address\n for (uint256 i = 0; i < _manageAddress.length; ++i) {\n _setupRole(MANAGE_ROLE, _manageAddress[i]);\n }\n\n // Initialize the nft contract with IBEERC721 interface\n nft = IBEERC721(_nftTarget);\n }\n\n /**\n * @dev Modifier that checks if the caller has the MANAGE_ROLE.\n *\n * The function uses the _checkRole() function from the AccessControl library.\n * If the check is successful, the code defined by the function that uses this modifier is executed.\n */\n modifier onlyManager() {\n // Check if the caller has the MANAGE_ROLE\n _checkRole(MANAGE_ROLE, _msgSender());\n // If the check is successful, execute the code in the function that uses this modifier\n _;\n }\n\n /**\n * @dev The mintToUser function mints NFTs to a given user.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes an array of nftIds and checks that there are enough mintable NFTs for the user.\n * It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted.\n * Then it emits the Minted event with details of the operation.\n *\n * @param _user - The address of the user receiving the NFTs\n * @param _nftIds - An array of the IDs for the NFTs being minted\n */\n function mintToUser(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Check that there are enough mintable NFTs\n require(\n _nftIds.length <= getMintableCount(_user),\n \"Mintable count is not enough\"\n );\n // Get the array of the user's owned NFTs\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize variables\n uint256 index = 0;\n uint256[] memory nftSource = new uint256[](_nftIds.length);\n\n // Loop through the user's owned NFTs\n for (uint256 i = 0; i < nfts.length; i++) {\n uint256 nftSId = nfts[i];\n\n // Check if the NFT is mintable\n if (!nftMinted[nftSId]) {\n // If the NFT is mintable, add it to the list to be minted\n uint256 nftId = _nftIds[index];\n // Add the NFT's source ID to the list of sources\n nftSource[index] = nftSId;\n nftMinted[nftSId] = true;\n // Mint the NFT to the user's address\n nft.mint(_user, nftId);\n index++;\n }\n }\n // Emit event with details of the minting operation\n emit Minted(_user, address(nft), nftSource, _nftIds);\n }\n\n /**\n * @dev The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user.\n * mintToUser method would check if target user had permission to mint NFTs.\n *\n * Only functions called by an address with the MANAGE_ROLE permission can access this function.\n * The function takes in the address of the user and an array of NFT IDs. It then loops through the array\n * of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\n *\n * @param _user - The address of the user being updated with new NFT data\n * @param _nftIds - An array of NFT IDs being added to the user's NFT data\n */\n function addNFTData(\n address _user,\n uint256[] calldata _nftIds\n ) external onlyManager {\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < _nftIds.length; i++) {\n // Add each NFT ID to the end of the array of NFTs owned by the user\n ownerToNFTs[_user].push(_nftIds[i]);\n }\n }\n\n /**\n * @dev The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted.\n *\n * This is a read-only function, meaning it doesn't modify the state of the blockchain.\n * It takes in the address of the user whose mintable count is being determined,\n * and returns the number of NFTs owned by the user that have not yet been minted.\n *\n * @param _user - The address of the user whose mintable count is being determined\n * @return count - The number of NFTs owned by the user that have not yet been minted\n */\n function getMintableCount(address _user) public view returns (uint256) {\n // Get an array of all NFT IDs owned by the user\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize count to zero\n uint256 count = 0;\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < nfts.length; i++) {\n // Get the NFT ID at this index of the loop\n uint256 nftAId = nfts[i];\n // Check if the NFT has not yet been minted\n if (!nftMinted[nftAId]) {\n // If the NFT has not yet been minted, increment the mintable count\n count++;\n }\n }\n // Return the final mintable count\n return count;\n }\n\n /**\n * @dev The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted.\n *\n * This is a read-only function, meaning it doesn't modify the state of the blockchain.\n * It takes in the address of the user whose mintable NFT IDs are being determined,\n * and returns an array of the NFT IDs owned by the user that have not yet been minted.\n *\n * @param _user - The address of the user whose mintable NFT IDs are being determined\n * @return mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted\n */\n function getMintableNftIds(\n address _user\n ) external view returns (uint256[] memory) {\n // Get an array of all NFT IDs owned by the user\n uint256[] memory nfts = ownerToNFTs[_user];\n // Initialize an array for mintable NFT IDs with the same length as the array of all NFT IDs\n uint256[] memory mintableNftIds = new uint256[](nfts.length);\n // Initialize an index counter to zero\n uint256 index = 0;\n // Loop through the array of NFT IDs\n for (uint256 i = 0; i < nfts.length; i++) {\n // Get the NFT ID at this index of the loop\n uint256 nftId = nfts[i];\n // Check if the NFT has not yet been minted\n if (!nftMinted[nftId]) {\n // If the NFT has not yet been minted, add it to the mintable NFT IDs array\n mintableNftIds[index] = nftId;\n // Increment the index counter\n index++;\n }\n }\n // Return the array of mintable NFT IDs\n return mintableNftIds;\n }\n}\n", + "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/logic/NftDistributor.sol", + "ast": { + "absolutePath": "project:/contracts/logic/NftDistributor.sol", + "exportedSymbols": { + "AccessControl": [ + 308 + ], + "AccessControlEnumerable": [ + 433 + ], + "Context": [ + 669 + ], + "ERC165": [ + 896 + ], + "EnumerableSet": [ + 1507 + ], + "IAccessControl": [ + 506 + ], + "IAccessControlEnumerable": [ + 531 + ], + "IBEERC721": [ + 1549 + ], + "IERC165": [ + 908 + ], + "IERC721": [ + 647 + ], + "NftDistributor": [ + 1928 + ], + "Strings": [ + 872 + ] + }, + "id": 1929, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1551, + "literals": [ + "solidity", + "0.8", + ".10" + ], + "nodeType": "PragmaDirective", + "src": "32:23:11" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "id": 1552, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1929, + "sourceUnit": 434, + "src": "57:68:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/contracts/interfaces/IBEERC721.sol", + "file": "../interfaces/IBEERC721.sol", + "id": 1553, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1929, + "sourceUnit": 1550, + "src": "126:37:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1554, + "name": "AccessControlEnumerable", + "nodeType": "IdentifierPath", + "referencedDeclaration": 433, + "src": "192:23:11" + }, + "id": 1555, + "nodeType": "InheritanceSpecifier", + "src": "192:23:11" + } + ], + "canonicalName": "NftDistributor", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1928, + "linearizedBaseContracts": [ + 1928, + 433, + 308, + 896, + 908, + 531, + 506, + 669 + ], + "name": "NftDistributor", + "nameLocation": "174:14:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "75b238fc", + "id": 1560, + "mutability": "constant", + "name": "ADMIN_ROLE", + "nameLocation": "244:10:11", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "220:60:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "220:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "41444d494e5f524f4c45", + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "267:12:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + }, + "value": "ADMIN_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775", + "typeString": "literal_string \"ADMIN_ROLE\"" + } + ], + "id": 1557, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "257:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "257:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "60a4b76a", + "id": 1565, + "mutability": "constant", + "name": "MANAGE_ROLE", + "nameLocation": "308:11:11", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "284:62:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1561, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "284:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "4d414e4147455f524f4c45", + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "332:13:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091", + "typeString": "literal_string \"MANAGE_ROLE\"" + }, + "value": "MANAGE_ROLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091", + "typeString": "literal_string \"MANAGE_ROLE\"" + } + ], + "id": 1562, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "322:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "322:24:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ad0f93ad", + "id": 1570, + "mutability": "mutable", + "name": "ownerToNFTs", + "nameLocation": "417:11:11", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "380:48:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[])" + }, + "typeName": { + "id": 1569, + "keyType": { + "id": 1566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "388:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "380:29:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[])" + }, + "valueType": { + "baseType": { + "id": 1567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "399:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1568, + "nodeType": "ArrayTypeName", + "src": "399:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ffd68f15", + "id": 1574, + "mutability": "mutable", + "name": "nftMinted", + "nameLocation": "486:9:11", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "454:41:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 1573, + "keyType": { + "id": 1571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "454:24:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 1572, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "473:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "47ccca02", + "id": 1577, + "mutability": "mutable", + "name": "nft", + "nameLocation": "517:3:11", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "500:20:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + }, + "typeName": { + "id": 1576, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1575, + "name": "IBEERC721", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1549, + "src": "500:9:11" + }, + "referencedDeclaration": 1549, + "src": "500:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "id": 1589, + "name": "Minted", + "nameLocation": "531:6:11", + "nodeType": "EventDefinition", + "parameters": { + "id": 1588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1579, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nameLocation": "559:4:11", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "543:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "543:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1581, + "indexed": true, + "mutability": "mutable", + "name": "nft", + "nameLocation": "585:3:11", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "569:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "569:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1584, + "indexed": false, + "mutability": "mutable", + "name": "nftSIds", + "nameLocation": "604:7:11", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "594:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "594:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1583, + "nodeType": "ArrayTypeName", + "src": "594:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1587, + "indexed": false, + "mutability": "mutable", + "name": "nftTIds", + "nameLocation": "627:7:11", + "nodeType": "VariableDeclaration", + "scope": 1589, + "src": "617:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1586, + "nodeType": "ArrayTypeName", + "src": "617:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "537:101:11" + }, + "src": "525:114:11" + }, + { + "body": { + "id": 1648, + "nodeType": "Block", + "src": "1142:557:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1599, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1600, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1219:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1598, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "1193:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1193:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1602, + "nodeType": "ExpressionStatement", + "src": "1193:37:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1604, + "name": "MANAGE_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "1250:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1605, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1263:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1603, + "name": "_setRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "1236:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1236:38:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1607, + "nodeType": "ExpressionStatement", + "src": "1236:38:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1609, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1363:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1610, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "1375:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1375:12:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "1352:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1352:36:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1613, + "nodeType": "ExpressionStatement", + "src": "1352:36:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1615, + "name": "ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1405:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 1618, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "1425:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NftDistributor_$1928", + "typeString": "contract NftDistributor" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NftDistributor_$1928", + "typeString": "contract NftDistributor" + } + ], + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1417:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1417:7:11", + "typeDescriptions": {} + } + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1417:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1614, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "1394:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1394:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1621, + "nodeType": "ExpressionStatement", + "src": "1394:37:11" + }, + { + "body": { + "id": 1640, + "nodeType": "Block", + "src": "1544:57:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1634, + "name": "MANAGE_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "1563:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "baseExpression": { + "id": 1635, + "name": "_manageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "1576:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1637, + "indexExpression": { + "id": 1636, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "1591:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1576:17:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1633, + "name": "_setupRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 216, + "src": "1552:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1552:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1639, + "nodeType": "ExpressionStatement", + "src": "1552:42:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1626, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "1512:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1627, + "name": "_manageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "1516:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1516:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1512:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1641, + "initializationExpression": { + "assignments": [ + 1623 + ], + "declarations": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "i", + "nameLocation": "1505:1:11", + "nodeType": "VariableDeclaration", + "scope": 1641, + "src": "1497:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1497:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1625, + "initialValue": { + "hexValue": "30", + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1509:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1497:13:11" + }, + "loopExpression": { + "expression": { + "id": 1631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "1539:3:11", + "subExpression": { + "id": 1630, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "1541:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1632, + "nodeType": "ExpressionStatement", + "src": "1539:3:11" + }, + "nodeType": "ForStatement", + "src": "1492:109:11" + }, + { + "expression": { + "id": 1646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1642, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "1667:3:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1644, + "name": "_nftTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "1683:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1643, + "name": "IBEERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1549, + "src": "1673:9:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IBEERC721_$1549_$", + "typeString": "type(contract IBEERC721)" + } + }, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1673:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + }, + "src": "1667:27:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + }, + "id": 1647, + "nodeType": "ExpressionStatement", + "src": "1667:27:11" + } + ] + }, + "documentation": { + "id": 1590, + "nodeType": "StructuredDocumentation", + "src": "643:431:11", + "text": " @dev Contract constructor.\n Initializes the contract with the specified addresses and sets the admin and management roles.\n Parameters:\n - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE\n - _nftSource: The address of the source NFT that will check if user has mint permission.\n - _manageAddress: The address that will have the MANAGE_ROLE assigned." + }, + "id": 1649, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1592, + "mutability": "mutable", + "name": "_nftTarget", + "nameLocation": "1097:10:11", + "nodeType": "VariableDeclaration", + "scope": 1649, + "src": "1089:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1089:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "_manageAddress", + "nameLocation": "1126:14:11", + "nodeType": "VariableDeclaration", + "scope": 1649, + "src": "1109:31:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1109:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1594, + "nodeType": "ArrayTypeName", + "src": "1109:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "1088:53:11" + }, + "returnParameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [], + "src": "1142:0:11" + }, + "scope": 1928, + "src": "1077:622:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1659, + "nodeType": "Block", + "src": "1993:194:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1653, + "name": "MANAGE_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "2057:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1654, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "2070:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2070:12:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1652, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2046:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2046:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1657, + "nodeType": "ExpressionStatement", + "src": "2046:37:11" + }, + { + "id": 1658, + "nodeType": "PlaceholderStatement", + "src": "2181:1:11" + } + ] + }, + "documentation": { + "id": 1650, + "nodeType": "StructuredDocumentation", + "src": "1703:264:11", + "text": " @dev Modifier that checks if the caller has the MANAGE_ROLE.\n The function uses the _checkRole() function from the AccessControl library.\n If the check is successful, the code defined by the function that uses this modifier is executed." + }, + "id": 1660, + "name": "onlyManager", + "nameLocation": "1979:11:11", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1651, + "nodeType": "ParameterList", + "parameters": [], + "src": "1990:2:11" + }, + "src": "1970:217:11", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1769, + "nodeType": "Block", + "src": "2895:1020:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1672, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1666, + "src": "2965:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2965:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "id": 1675, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "3000:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1674, + "name": "getMintableCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1856, + "src": "2983:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2983:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2965:41:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d696e7461626c6520636f756e74206973206e6f7420656e6f756768", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3014:30:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08", + "typeString": "literal_string \"Mintable count is not enough\"" + }, + "value": "Mintable count is not enough" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c0532a597c4fcdca619b8bd483d77a931af948aaf6338ee552604b6087393e08", + "typeString": "literal_string \"Mintable count is not enough\"" + } + ], + "id": 1671, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2950:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2950:100:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1680, + "nodeType": "ExpressionStatement", + "src": "2950:100:11" + }, + { + "assignments": [ + 1685 + ], + "declarations": [ + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "3119:4:11", + "nodeType": "VariableDeclaration", + "scope": 1769, + "src": "3102:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3102:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1684, + "nodeType": "ArrayTypeName", + "src": "3102:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1689, + "initialValue": { + "baseExpression": { + "id": 1686, + "name": "ownerToNFTs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "3126:11:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1688, + "indexExpression": { + "id": 1687, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "3138:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3126:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3102:42:11" + }, + { + "assignments": [ + 1691 + ], + "declarations": [ + { + "constant": false, + "id": 1691, + "mutability": "mutable", + "name": "index", + "nameLocation": "3186:5:11", + "nodeType": "VariableDeclaration", + "scope": 1769, + "src": "3178:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3178:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1693, + "initialValue": { + "hexValue": "30", + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3194:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3178:17:11" + }, + { + "assignments": [ + 1698 + ], + "declarations": [ + { + "constant": false, + "id": 1698, + "mutability": "mutable", + "name": "nftSource", + "nameLocation": "3218:9:11", + "nodeType": "VariableDeclaration", + "scope": 1769, + "src": "3201:26:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3201:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1697, + "nodeType": "ArrayTypeName", + "src": "3201:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1705, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1702, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1666, + "src": "3244:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3244:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3230:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3234:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1700, + "nodeType": "ArrayTypeName", + "src": "3234:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3230:29:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3201:58:11" + }, + { + "body": { + "id": 1757, + "nodeType": "Block", + "src": "3350:447:11", + "statements": [ + { + "assignments": [ + 1718 + ], + "declarations": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "nftSId", + "nameLocation": "3366:6:11", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "3358:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3358:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1722, + "initialValue": { + "baseExpression": { + "id": 1719, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "3375:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1721, + "indexExpression": { + "id": 1720, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "3380:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3375:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3358:24:11" + }, + { + "condition": { + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3433:18:11", + "subExpression": { + "baseExpression": { + "id": 1723, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "3434:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1725, + "indexExpression": { + "id": 1724, + "name": "nftSId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "3444:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3434:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1756, + "nodeType": "IfStatement", + "src": "3429:362:11", + "trueBody": { + "id": 1755, + "nodeType": "Block", + "src": "3453:338:11", + "statements": [ + { + "assignments": [ + 1728 + ], + "declarations": [ + { + "constant": false, + "id": 1728, + "mutability": "mutable", + "name": "nftId", + "nameLocation": "3538:5:11", + "nodeType": "VariableDeclaration", + "scope": 1755, + "src": "3530:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3530:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1732, + "initialValue": { + "baseExpression": { + "id": 1729, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1666, + "src": "3546:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1731, + "indexExpression": { + "id": 1730, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "3554:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3546:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3530:30:11" + }, + { + "expression": { + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1733, + "name": "nftSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "3628:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1735, + "indexExpression": { + "id": 1734, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "3638:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3628:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1736, + "name": "nftSId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "3647:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3628:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1738, + "nodeType": "ExpressionStatement", + "src": "3628:25:11" + }, + { + "expression": { + "id": 1743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1739, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "3663:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1741, + "indexExpression": { + "id": 1740, + "name": "nftSId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1718, + "src": "3673:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3663:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3683:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3663:24:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1744, + "nodeType": "ExpressionStatement", + "src": "3663:24:11" + }, + { + "expression": { + "arguments": [ + { + "id": 1748, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "3752:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1749, + "name": "nftId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "3759:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1745, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "3743:3:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 1519, + "src": "3743:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3743:22:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1751, + "nodeType": "ExpressionStatement", + "src": "3743:22:11" + }, + { + "expression": { + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3775:7:11", + "subExpression": { + "id": 1752, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "3775:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1754, + "nodeType": "ExpressionStatement", + "src": "3775:7:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1710, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "3328:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1711, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "3332:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3332:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3328:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1758, + "initializationExpression": { + "assignments": [ + 1707 + ], + "declarations": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "i", + "nameLocation": "3321:1:11", + "nodeType": "VariableDeclaration", + "scope": 1758, + "src": "3313:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3313:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1709, + "initialValue": { + "hexValue": "30", + "id": 1708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3325:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3313:13:11" + }, + "loopExpression": { + "expression": { + "id": 1715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3345:3:11", + "subExpression": { + "id": 1714, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "3345:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1716, + "nodeType": "ExpressionStatement", + "src": "3345:3:11" + }, + "nodeType": "ForStatement", + "src": "3308:489:11" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1760, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "3870:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1763, + "name": "nft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1577, + "src": "3885:3:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IBEERC721_$1549", + "typeString": "contract IBEERC721" + } + ], + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3877:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3877:7:11", + "typeDescriptions": {} + } + }, + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3877:12:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1765, + "name": "nftSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1698, + "src": "3891:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1766, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1666, + "src": "3902:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 1759, + "name": "Minted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1589, + "src": "3863:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3863:47:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1768, + "nodeType": "EmitStatement", + "src": "3858:52:11" + } + ] + }, + "documentation": { + "id": 1661, + "nodeType": "StructuredDocumentation", + "src": "2191:605:11", + "text": " @dev The mintToUser function mints NFTs to a given user.\n Only functions called by an address with the MANAGE_ROLE permission can access this function.\n The function takes an array of nftIds and checks that there are enough mintable NFTs for the user.\n It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted.\n Then it emits the Minted event with details of the operation.\n @param _user - The address of the user receiving the NFTs\n @param _nftIds - An array of the IDs for the NFTs being minted" + }, + "functionSelector": "36136433", + "id": 1770, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1669, + "kind": "modifierInvocation", + "modifierName": { + "id": 1668, + "name": "onlyManager", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1660, + "src": "2883:11:11" + }, + "nodeType": "ModifierInvocation", + "src": "2883:11:11" + } + ], + "name": "mintToUser", + "nameLocation": "2808:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "_user", + "nameLocation": "2832:5:11", + "nodeType": "VariableDeclaration", + "scope": 1770, + "src": "2824:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2824:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1666, + "mutability": "mutable", + "name": "_nftIds", + "nameLocation": "2862:7:11", + "nodeType": "VariableDeclaration", + "scope": 1770, + "src": "2843:26:11", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2843:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1665, + "nodeType": "ArrayTypeName", + "src": "2843:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2818:55:11" + }, + "returnParameters": { + "id": 1670, + "nodeType": "ParameterList", + "parameters": [], + "src": "2895:0:11" + }, + "scope": 1928, + "src": "2799:1116:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1803, + "nodeType": "Block", + "src": "4698:221:11", + "statements": [ + { + "body": { + "id": 1801, + "nodeType": "Block", + "src": "4790:125:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 1796, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "4897:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1798, + "indexExpression": { + "id": 1797, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "4905:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4897:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1792, + "name": "ownerToNFTs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "4873:11:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1794, + "indexExpression": { + "id": 1793, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "4885:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4873:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "4873:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4873:35:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1800, + "nodeType": "ExpressionStatement", + "src": "4873:35:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1785, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "4765:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1786, + "name": "_nftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1776, + "src": "4769:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4769:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4765:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1802, + "initializationExpression": { + "assignments": [ + 1782 + ], + "declarations": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "i", + "nameLocation": "4758:1:11", + "nodeType": "VariableDeclaration", + "scope": 1802, + "src": "4750:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4750:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1784, + "initialValue": { + "hexValue": "30", + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4762:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4750:13:11" + }, + "loopExpression": { + "expression": { + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4785:3:11", + "subExpression": { + "id": 1789, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "4785:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1791, + "nodeType": "ExpressionStatement", + "src": "4785:3:11" + }, + "nodeType": "ForStatement", + "src": "4745:170:11" + } + ] + }, + "documentation": { + "id": 1771, + "nodeType": "StructuredDocumentation", + "src": "3919:680:11", + "text": " @dev The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user.\n mintToUser method would check if target user had permission to mint NFTs.\n Only functions called by an address with the MANAGE_ROLE permission can access this function.\n The function takes in the address of the user and an array of NFT IDs. It then loops through the array\n of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.\n @param _user - The address of the user being updated with new NFT data\n @param _nftIds - An array of NFT IDs being added to the user's NFT data" + }, + "functionSelector": "84be00e4", + "id": 1804, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1779, + "kind": "modifierInvocation", + "modifierName": { + "id": 1778, + "name": "onlyManager", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1660, + "src": "4686:11:11" + }, + "nodeType": "ModifierInvocation", + "src": "4686:11:11" + } + ], + "name": "addNFTData", + "nameLocation": "4611:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "_user", + "nameLocation": "4635:5:11", + "nodeType": "VariableDeclaration", + "scope": 1804, + "src": "4627:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4627:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1776, + "mutability": "mutable", + "name": "_nftIds", + "nameLocation": "4665:7:11", + "nodeType": "VariableDeclaration", + "scope": 1804, + "src": "4646:26:11", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4646:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1775, + "nodeType": "ArrayTypeName", + "src": "4646:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4621:55:11" + }, + "returnParameters": { + "id": 1780, + "nodeType": "ParameterList", + "parameters": [], + "src": "4698:0:11" + }, + "scope": 1928, + "src": "4602:317:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1855, + "nodeType": "Block", + "src": "5558:578:11", + "statements": [ + { + "assignments": [ + 1816 + ], + "declarations": [ + { + "constant": false, + "id": 1816, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "5634:4:11", + "nodeType": "VariableDeclaration", + "scope": 1855, + "src": "5617:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5617:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1815, + "nodeType": "ArrayTypeName", + "src": "5617:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1820, + "initialValue": { + "baseExpression": { + "id": 1817, + "name": "ownerToNFTs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "5641:11:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1819, + "indexExpression": { + "id": 1818, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "5653:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5641:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5617:42:11" + }, + { + "assignments": [ + 1822 + ], + "declarations": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "count", + "nameLocation": "5705:5:11", + "nodeType": "VariableDeclaration", + "scope": 1855, + "src": "5697:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5697:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1824, + "initialValue": { + "hexValue": "30", + "id": 1823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5713:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5697:17:11" + }, + { + "body": { + "id": 1851, + "nodeType": "Block", + "src": "5803:272:11", + "statements": [ + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "nftAId", + "nameLocation": "5869:6:11", + "nodeType": "VariableDeclaration", + "scope": 1851, + "src": "5861:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5861:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1841, + "initialValue": { + "baseExpression": { + "id": 1838, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1816, + "src": "5878:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1840, + "indexExpression": { + "id": 1839, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "5883:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5878:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5861:24:11" + }, + { + "condition": { + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5947:18:11", + "subExpression": { + "baseExpression": { + "id": 1842, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "5948:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1844, + "indexExpression": { + "id": 1843, + "name": "nftAId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "5958:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5948:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1850, + "nodeType": "IfStatement", + "src": "5943:126:11", + "trueBody": { + "id": 1849, + "nodeType": "Block", + "src": "5967:102:11", + "statements": [ + { + "expression": { + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6053:7:11", + "subExpression": { + "id": 1846, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "6053:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1848, + "nodeType": "ExpressionStatement", + "src": "6053:7:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1829, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "5781:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1830, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1816, + "src": "5785:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5785:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5781:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1852, + "initializationExpression": { + "assignments": [ + 1826 + ], + "declarations": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "i", + "nameLocation": "5774:1:11", + "nodeType": "VariableDeclaration", + "scope": 1852, + "src": "5766:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5766:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "hexValue": "30", + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5778:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5766:13:11" + }, + "loopExpression": { + "expression": { + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5798:3:11", + "subExpression": { + "id": 1833, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1826, + "src": "5798:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1835, + "nodeType": "ExpressionStatement", + "src": "5798:3:11" + }, + "nodeType": "ForStatement", + "src": "5761:314:11" + }, + { + "expression": { + "id": 1853, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "6126:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1811, + "id": 1854, + "nodeType": "Return", + "src": "6119:12:11" + } + ] + }, + "documentation": { + "id": 1805, + "nodeType": "StructuredDocumentation", + "src": "4923:561:11", + "text": " @dev The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted.\n This is a read-only function, meaning it doesn't modify the state of the blockchain.\n It takes in the address of the user whose mintable count is being determined,\n and returns the number of NFTs owned by the user that have not yet been minted.\n @param _user - The address of the user whose mintable count is being determined\n @return count - The number of NFTs owned by the user that have not yet been minted" + }, + "functionSelector": "0431f205", + "id": 1856, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMintableCount", + "nameLocation": "5496:16:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "_user", + "nameLocation": "5521:5:11", + "nodeType": "VariableDeclaration", + "scope": 1856, + "src": "5513:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5513:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5512:15:11" + }, + "returnParameters": { + "id": 1811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1856, + "src": "5549:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5549:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5548:9:11" + }, + "scope": 1928, + "src": "5487:649:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1926, + "nodeType": "Block", + "src": "6822:850:11", + "statements": [ + { + "assignments": [ + 1869 + ], + "declarations": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "nfts", + "nameLocation": "6898:4:11", + "nodeType": "VariableDeclaration", + "scope": 1926, + "src": "6881:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1867, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6881:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1868, + "nodeType": "ArrayTypeName", + "src": "6881:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1873, + "initialValue": { + "baseExpression": { + "id": 1870, + "name": "ownerToNFTs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "6905:11:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + } + }, + "id": 1872, + "indexExpression": { + "id": 1871, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1859, + "src": "6917:5:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6905:18:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6881:42:11" + }, + { + "assignments": [ + 1878 + ], + "declarations": [ + { + "constant": false, + "id": 1878, + "mutability": "mutable", + "name": "mintableNftIds", + "nameLocation": "7043:14:11", + "nodeType": "VariableDeclaration", + "scope": 1926, + "src": "7026:31:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7026:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1877, + "nodeType": "ArrayTypeName", + "src": "7026:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1885, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1882, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "7074:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7074:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7060:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 1879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7064:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1880, + "nodeType": "ArrayTypeName", + "src": "7064:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7060:26:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7026:60:11" + }, + { + "assignments": [ + 1887 + ], + "declarations": [ + { + "constant": false, + "id": 1887, + "mutability": "mutable", + "name": "index", + "nameLocation": "7143:5:11", + "nodeType": "VariableDeclaration", + "scope": 1926, + "src": "7135:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7135:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1889, + "initialValue": { + "hexValue": "30", + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7135:17:11" + }, + { + "body": { + "id": 1922, + "nodeType": "Block", + "src": "7241:356:11", + "statements": [ + { + "assignments": [ + 1902 + ], + "declarations": [ + { + "constant": false, + "id": 1902, + "mutability": "mutable", + "name": "nftId", + "nameLocation": "7307:5:11", + "nodeType": "VariableDeclaration", + "scope": 1922, + "src": "7299:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7299:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1906, + "initialValue": { + "baseExpression": { + "id": 1903, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "7315:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1905, + "indexExpression": { + "id": 1904, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "7320:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7315:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7299:23:11" + }, + { + "condition": { + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7384:17:11", + "subExpression": { + "baseExpression": { + "id": 1907, + "name": "nftMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1574, + "src": "7385:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 1909, + "indexExpression": { + "id": 1908, + "name": "nftId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1902, + "src": "7395:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7385:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1921, + "nodeType": "IfStatement", + "src": "7380:211:11", + "trueBody": { + "id": 1920, + "nodeType": "Block", + "src": "7403:188:11", + "statements": [ + { + "expression": { + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1911, + "name": "mintableNftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1878, + "src": "7497:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1913, + "indexExpression": { + "id": 1912, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1887, + "src": "7512:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7497:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1914, + "name": "nftId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1902, + "src": "7521:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7497:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1916, + "nodeType": "ExpressionStatement", + "src": "7497:29:11" + }, + { + "expression": { + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7575:7:11", + "subExpression": { + "id": 1917, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1887, + "src": "7575:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "7575:7:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1894, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "7219:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1895, + "name": "nfts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "7223:4:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7223:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7219:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1923, + "initializationExpression": { + "assignments": [ + 1891 + ], + "declarations": [ + { + "constant": false, + "id": 1891, + "mutability": "mutable", + "name": "i", + "nameLocation": "7212:1:11", + "nodeType": "VariableDeclaration", + "scope": 1923, + "src": "7204:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7204:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1893, + "initialValue": { + "hexValue": "30", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7216:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7204:13:11" + }, + "loopExpression": { + "expression": { + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7236:3:11", + "subExpression": { + "id": 1898, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "7236:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1900, + "nodeType": "ExpressionStatement", + "src": "7236:3:11" + }, + "nodeType": "ForStatement", + "src": "7199:398:11" + }, + { + "expression": { + "id": 1924, + "name": "mintableNftIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1878, + "src": "7653:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 1864, + "id": 1925, + "nodeType": "Return", + "src": "7646:21:11" + } + ] + }, + "documentation": { + "id": 1857, + "nodeType": "StructuredDocumentation", + "src": "6140:588:11", + "text": " @dev The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted.\n This is a read-only function, meaning it doesn't modify the state of the blockchain.\n It takes in the address of the user whose mintable NFT IDs are being determined,\n and returns an array of the NFT IDs owned by the user that have not yet been minted.\n @param _user - The address of the user whose mintable NFT IDs are being determined\n @return mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted" + }, + "functionSelector": "032221ad", + "id": 1927, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMintableNftIds", + "nameLocation": "6740:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1859, + "mutability": "mutable", + "name": "_user", + "nameLocation": "6771:5:11", + "nodeType": "VariableDeclaration", + "scope": 1927, + "src": "6763:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6763:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6757:23:11" + }, + "returnParameters": { + "id": 1864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1863, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1927, + "src": "6804:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6804:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1862, + "nodeType": "ArrayTypeName", + "src": "6804:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "6803:18:11" + }, + "scope": 1928, + "src": "6731:941:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1929, + "src": "165:7509:11", + "usedErrors": [] + } + ], + "src": "32:7643:11" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": { + "80001": { + "events": {}, + "links": {}, + "address": "0x1d33b4E045ce595B6346C3D0e334814dd4Af5418", + "transactionHash": "0xba14fddb8126aa447add316b529fd61206ee795909c9bb671332dc4d824e937d" + } + }, + "schemaVersion": "3.4.11", + "updatedAt": "2023-04-19T02:14:02.522Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": { + "addNFTData(address,uint256[])": { + "details": "The addNFTData function adds an array of NFT IDs to the list of NFT IDs owned by a user. mintToUser method would check if target user had permission to mint NFTs. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes in the address of the user and an array of NFT IDs. It then loops through the array of NFT IDs, and adds each one to the end of the array of NFTs owned by that user to update their ownership data.", + "params": { + "_nftIds": "- An array of NFT IDs being added to the user's NFT data", + "_user": "- The address of the user being updated with new NFT data" + } + }, + "constructor": { + "details": "Contract constructor. Initializes the contract with the specified addresses and sets the admin and management roles. Parameters: - _nftTarget: The address of NFT that will be minted by this contract. Need MINTER_ROLE - _nftSource: The address of the source NFT that will check if user has mint permission. - _manageAddress: The address that will have the MANAGE_ROLE assigned." + }, + "getMintableCount(address)": { + "details": "The getMintableCount function gets the number of NFTs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable count is being determined, and returns the number of NFTs owned by the user that have not yet been minted.", + "params": { + "_user": "- The address of the user whose mintable count is being determined" + }, + "returns": { + "_0": "count - The number of NFTs owned by the user that have not yet been minted" + } + }, + "getMintableNftIds(address)": { + "details": "The getMintableNftIds function gets an array of NFT IDs owned by a user that have not yet been minted. This is a read-only function, meaning it doesn't modify the state of the blockchain. It takes in the address of the user whose mintable NFT IDs are being determined, and returns an array of the NFT IDs owned by the user that have not yet been minted.", + "params": { + "_user": "- The address of the user whose mintable NFT IDs are being determined" + }, + "returns": { + "_0": "mintableNftIds - An array of the NFT IDs owned by the user that have not yet been minted" + } + }, + "getRoleAdmin(bytes32)": { + "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." + }, + "getRoleMember(bytes32,uint256)": { + "details": "Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information." + }, + "getRoleMemberCount(bytes32)": { + "details": "Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role." + }, + "grantRole(bytes32,address)": { + "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role." + }, + "hasRole(bytes32,address)": { + "details": "Returns `true` if `account` has been granted `role`." + }, + "mintToUser(address,uint256[])": { + "details": "The mintToUser function mints NFTs to a given user. Only functions called by an address with the MANAGE_ROLE permission can access this function. The function takes an array of nftIds and checks that there are enough mintable NFTs for the user. It then loops through the user's owned NFTs, checking if each is mintable, and if so, adds it to a list to be minted. Then it emits the Minted event with details of the operation.", + "params": { + "_nftIds": "- An array of the IDs for the NFTs being minted", + "_user": "- The address of the user receiving the NFTs" + } + }, + "renounceRole(bytes32,address)": { + "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`." + }, + "revokeRole(bytes32,address)": { + "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/chain/BlockChain.ts b/src/chain/BlockChain.ts index 02bf049..d3ffa3d 100644 --- a/src/chain/BlockChain.ts +++ b/src/chain/BlockChain.ts @@ -8,6 +8,7 @@ import { ERC20Reactor } from './ERC20Reactor' import { ERC721Reactor } from './ERC721Reactor' import { HttpRetryProvider } from './HttpRetryProvider' import { WalletReactor } from './WalletReactor' +import { DistributorReactor } from './DistributorReactor' @singleton export class BlockChain { @@ -17,6 +18,7 @@ export class BlockChain { public erc20Reactor: ERC20Reactor public erc721Reactor: ERC721Reactor public walletReactor: WalletReactor + public distributorReactor: DistributorReactor public confirmQueue: ConfirmQueue public currentBlockNum: number = 0 @@ -39,6 +41,10 @@ export class BlockChain { web3: this.web3, address: process.env.CHAIN_WALLET_ADDRESS, }) + this.distributorReactor = new DistributorReactor({ + web3: this.web3, + address: process.env.CHAIN_DISTRIBUTOR_ADDRESS, + }) } public async getContractInstance(address: string, abi: any) { @@ -83,6 +89,10 @@ export class BlockChain { reqData.tokenId = reqData.tokenId || reqData.tokenid abi = await this.erc721Reactor.transfer(reqData) break + case TaskType.PUBLISH_AIRDROP_LIST: + reqData.nftList = [reqData.tokenId || reqData.tokenid] + abi = await this.distributorReactor.publishAirdropList(reqData) + break } return abi } diff --git a/src/chain/DistributorReactor.ts b/src/chain/DistributorReactor.ts new file mode 100644 index 0000000..f5363d1 --- /dev/null +++ b/src/chain/DistributorReactor.ts @@ -0,0 +1,66 @@ +import { Contract } from 'web3-eth-contract' +import Web3 from 'web3' +import { Account } from 'web3-core' +const abi = require('abis/NftDistributor.json').abi + +export class DistributorReactor { + private web3: Web3 + private contract: Contract + private account: Account + constructor({ web3, address }: { web3: Web3; address: string }) { + this.web3 = web3 + this.account = this.web3.eth.accounts.wallet[0] + this.contract = new this.web3.eth.Contract(abi, address, { from: this.account.address }) + } + /** + * 发布NFT列表 + */ + async publishAirdropList({ + address, + to, + nftList, + encodeABI = false, + }: { + address?: string + to: string + nftList: string[] + encodeABI?: boolean + }) { + const contract = address ? new this.web3.eth.Contract(abi, address, { from: this.account.address }) : this.contract + if (encodeABI) { + return contract.methods.addNFTData(to, nftList).encodeABI() + } + let gas = await contract.methods.addNFTData(to, nftList).estimateGas({ from: this.account.address }) + let res = await contract.methods.addNFTData(to, nftList).send({ gas: gas | 0 }) + return res + } + /** + * mint nft to user + */ + async mintNft({ + address, + to, + nftList, + encodeABI = false, + }: { + address?: string + to: string + nftList: string[] + encodeABI?: boolean + }) { + const contract = address ? new this.web3.eth.Contract(abi, address, { from: this.account.address }) : this.contract + if (encodeABI) { + return contract.methods.mintToUser(to, nftList).encodeABI() + } + let gas = await contract.methods.mintToUser(to, nftList).estimateGas({ from: this.account.address }) + let res = await contract.methods.mintToUser(to, nftList).send({ gas: gas | 0 }) + return res + } + /** + * 查询用户可mint的数量 + */ + async getMintableCount({ address, user }: { address?: string; user: string }) { + const contract = address ? new this.web3.eth.Contract(abi, address, { from: this.account.address }) : this.contract + return await contract.methods.getMintableCount(user).call() + } +} diff --git a/src/models/ChainTask.ts b/src/models/ChainTask.ts index b79192c..842bffe 100644 --- a/src/models/ChainTask.ts +++ b/src/models/ChainTask.ts @@ -141,6 +141,7 @@ export class ChainTaskClass extends BaseModule { /** * 解析企业微信审批信息 */ + // TODO:: mint nft 处理原始数据, 如果传入的是amount, 那么根据规则生成tokenid public static async parseWxApprovalInfo({ taskId, name, desc, data, starter, starterName }) { let maxTryCount = parseInt(process.env.CHAIN_MAX_TRY) let chainTask = await ChainTask.insertOrUpdate({ taskId }, { name, desc, starter, starterName, data }) diff --git a/src/models/RequestTask.ts b/src/models/RequestTask.ts index 6645bc5..7280fd8 100644 --- a/src/models/RequestTask.ts +++ b/src/models/RequestTask.ts @@ -10,7 +10,7 @@ export enum TaskType { MINT_NFT = 2, TRANSFER_FT = 3, TRANSFER_NFT = 4, - PUBLIC_AIRDROP_LIST = 5, + PUBLISH_AIRDROP_LIST = 5, } export const TaskTypeMap = new Map([ @@ -19,7 +19,7 @@ export const TaskTypeMap = new Map([ [TaskType.MINT_NFT, 'Mint NFT'], [TaskType.TRANSFER_FT, 'Ft转账'], [TaskType.TRANSFER_NFT, 'NFT转账'], - [TaskType.PUBLIC_AIRDROP_LIST, '公布空投名单'], + [TaskType.PUBLISH_AIRDROP_LIST, '公布空投名单'], ]) export enum ReqTaskStatus {