diff --git a/.gitignore b/.gitignore index 799eb69..6d48e52 100644 --- a/.gitignore +++ b/.gitignore @@ -114,4 +114,7 @@ dist # TernJS port file .tern-port -package-lock.json \ No newline at end of file +package-lock.json + +#lib +# src/libs/allocation_merkle_output.json \ No newline at end of file diff --git a/package.json b/package.json index 0233399..20f73f0 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@chenfengyuan/vue-countdown": "^2.0.0-rc", "@hennge/vue3-pagination": "^1.0.17", "@walletconnect/web3-provider": "^1.6.6", + "bignumber.js": "^9.0.2", "bootstrap-icons": "^1.6.0", "date-fns": "^2.25.0", "eslint": "^7.32.0", diff --git a/src/assets/contracts/MerkleDistributor.json b/src/assets/contracts/MerkleDistributor.json new file mode 100644 index 0000000..2fdcb73 --- /dev/null +++ b/src/assets/contracts/MerkleDistributor.json @@ -0,0 +1,5042 @@ +{ + "contractName": "MerkleDistributor", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "token_", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "merkleRoot_", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claimed", + "type": "event" + }, + { + "inputs": [], + "name": "merkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "isClaimed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot_\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"isClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/MerkleDistributor.sol\":\"MerkleDistributor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x96a652802a06645a5908f74f104ec95ff0897e261e7028ee319bafc55582b597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5afea8071316055c01a3d144da77523b8ae7ec8295e99559000cb07b23b98d30\",\"dweb:/ipfs/QmX14dHGgyErJb3R7wSNBSgxLdyX6EAVwJsZ6yK1xyG1Mo\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"project:/contracts/MerkleDistributor.sol\":{\"keccak256\":\"0xf429c39339f1ae3adad9387379c9014c4f28f401ece6a5fa18559c30815e1657\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a9950ba800537311a44f3ccf85e3caf6ecbbee77bd040a1c4b43c3a12f23395f\",\"dweb:/ipfs/QmWtojz6PBLtVNSrbaHou8vb2d4gnixbVkyZamjqxvRvYP\"]},\"project:/contracts/interfaces/IMerkleDistributor.sol\":{\"keccak256\":\"0x8cd6f78943994972a4c670ab91894a82bd9ed629c9381db6ca9d0483fe8b698f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://621484f0c5e702f7fb421c968bda5cd8218c3915cc6d79956c2d68fb0887f280\",\"dweb:/ipfs/QmXftsLwy64Z4rFn1WoXY5cj1iuqPctA8HoeraLb3Wd4ES\"]}},\"version\":1}", + "bytecode": "0x60c060405234801561001057600080fd5b506040516106173803806106178339818101604052604081101561003357600080fd5b508051602090910151606082901b6001600160601b03191660805260a08190526001600160a01b03909116906105916100866000398061020b52806103b352508061027c52806103fd52506105916000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e7ba6ef146100515780632eb4a7ab146100df5780639e34070f146100f9578063fc0c546a1461012a575b600080fd5b6100dd6004803603608081101561006757600080fd5b8135916001600160a01b03602082013516916040820135919081019060808101606082013564010000000081111561009e57600080fd5b8201836020820111156100b057600080fd5b803590602001918460208302840111640100000000831117156100d257600080fd5b50909250905061014e565b005b6100e76103b1565b60408051918252519081900360200190f35b6101166004803603602081101561010f57600080fd5b50356103d5565b604080519115158252519081900360200190f35b6101326103fb565b604080516001600160a01b039092168252519081900360200190f35b610157856103d5565b156101935760405162461bcd60e51b81526004018080602001828103825260288152602001806104f06028913960400191505060405180910390fd5b6040805160208082018890526bffffffffffffffffffffffff19606088901b1682840152605480830187905283518084039091018152607483018085528151918301919091206094928602808501840190955285825293610236939192879287928392909101908490808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061041f9050565b6102715760405162461bcd60e51b81526004018080602001828103825260218152602001806105186021913960400191505060405180910390fd5b61027a866104c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb86866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102fa57600080fd5b505af115801561030e573d6000803e3d6000fd5b505050506040513d602081101561032457600080fd5b50516103615760405162461bcd60e51b81526004018080602001828103825260238152602001806105396023913960400191505060405180910390fd5b604080518781526001600160a01b038716602082015280820186905290517f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269181900360600190a1505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101008104600090815260208190526040902054600160ff9092169190911b9081161490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815b85518110156104bd57600086828151811061043b57fe5b6020026020010151905080831161048257828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506104b4565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610424565b509092149392505050565b610100810460009081526020819052604090208054600160ff9093169290921b909117905556fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642ea264697066735822122072bd3561901ca7e85c7ba02f83ec6f05bfbd2a40935633fcbca188cf240f485764736f6c63430006080033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e7ba6ef146100515780632eb4a7ab146100df5780639e34070f146100f9578063fc0c546a1461012a575b600080fd5b6100dd6004803603608081101561006757600080fd5b8135916001600160a01b03602082013516916040820135919081019060808101606082013564010000000081111561009e57600080fd5b8201836020820111156100b057600080fd5b803590602001918460208302840111640100000000831117156100d257600080fd5b50909250905061014e565b005b6100e76103b1565b60408051918252519081900360200190f35b6101166004803603602081101561010f57600080fd5b50356103d5565b604080519115158252519081900360200190f35b6101326103fb565b604080516001600160a01b039092168252519081900360200190f35b610157856103d5565b156101935760405162461bcd60e51b81526004018080602001828103825260288152602001806104f06028913960400191505060405180910390fd5b6040805160208082018890526bffffffffffffffffffffffff19606088901b1682840152605480830187905283518084039091018152607483018085528151918301919091206094928602808501840190955285825293610236939192879287928392909101908490808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061041f9050565b6102715760405162461bcd60e51b81526004018080602001828103825260218152602001806105186021913960400191505060405180910390fd5b61027a866104c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb86866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102fa57600080fd5b505af115801561030e573d6000803e3d6000fd5b505050506040513d602081101561032457600080fd5b50516103615760405162461bcd60e51b81526004018080602001828103825260238152602001806105396023913960400191505060405180910390fd5b604080518781526001600160a01b038716602082015280820186905290517f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269181900360600190a1505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101008104600090815260208190526040902054600160ff9092169190911b9081161490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815b85518110156104bd57600086828151811061043b57fe5b6020026020010151905080831161048257828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506104b4565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610424565b509092149392505050565b610100810460009081526020819052604090208054600160ff9093169290921b909117905556fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642ea264697066735822122072bd3561901ca7e85c7ba02f83ec6f05bfbd2a40935633fcbca188cf240f485764736f6c63430006080033", + "immutableReferences": { + "1088": [ + { + "length": 32, + "start": 636 + }, + { + "length": 32, + "start": 1021 + } + ], + "1091": [ + { + "length": 32, + "start": 523 + }, + { + "length": 32, + "start": 947 + } + ] + }, + "sourceMap": "231:1600:6:-:0;;;481:121;5:9:-1;2:2;;;27:1;24;17:12;2:2;481:121:6;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;481:121:6;;;;;;;547:14;;;;-1:-1:-1;;;;;;547:14:6;;;571:24;;;;-1:-1:-1;;;;;231:1600:6;;;;;;;;;;;;", + "deployedSourceMap": "231:1600:6:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;231:1600:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1191:638:6;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1191:638:6;;;-1:-1:-1;;;;;1191:638:6;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1191:638:6;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1191:638:6;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;1191:638:6;;-1:-1:-1;1191:638:6;-1:-1:-1;1191:638:6;:::i;:::-;;331:44;;;:::i;:::-;;;;;;;;;;;;;;;;608:325;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;608:325:6;;:::i;:::-;;;;;;;;;;;;;;;;;;286:39;;;:::i;:::-;;;;-1:-1:-1;;;;;286:39:6;;;;;;;;;;;;;;1191:638;1323:16;1333:5;1323:9;:16::i;:::-;1322:17;1314:70;;;;-1:-1:-1;;;1314:70:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:40;;;;;;;;;;-1:-1:-1;;1456:40:6;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1456:40:6;;;;;;1446:51;;;;;;;;;1515:49;;;;;;;;;;;;;;;1446:51;1515:49;;1456:40;;1534:11;;;;;;1515:49;;;;1534:11;;1515:49;1534:11;1515:49;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;1547:10:6;;-1:-1:-1;1559:4:6;;-1:-1:-1;1515:18:6;;-1:-1:-1;1515:49:6:i;:::-;1507:95;;;;-1:-1:-1;;;1507:95:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1660:18;1672:5;1660:11;:18::i;:::-;1703:5;-1:-1:-1;;;;;1696:22:6;;1719:7;1728:6;1696:39;;;;;;;;;;;;;-1:-1:-1;;;;;1696:39:6;-1:-1:-1;;;;;1696:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1696:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1696:39:6;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1696:39:6;1688:87;;;;-1:-1:-1;;;1688:87:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1791:31;;;;;;-1:-1:-1;;;;;1791:31:6;;;;;;;;;;;;;;;;;;;;;;;1191:638;;;;;;:::o;331:44::-;;;:::o;608:325::-;723:3;715:11;;672:4;805:31;;;;;;;;;;;862:1;762:11;;;;862:20;;;;900:18;;;:26;;608:325::o;286:39::-;;;:::o;497:779:1:-;588:4;627;588;642:515;666:5;:12;662:1;:16;642:515;;;699:20;722:5;728:1;722:8;;;;;;;;;;;;;;699:31;;765:12;749;:28;745:402;;917:12;931;900:44;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;900:44:1;;;890:55;;;;;;875:70;;745:402;;;1104:12;1118;1087:44;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1087:44:1;;;1077:55;;;;;;1062:70;;745:402;-1:-1:-1;680:3:1;;642:515;;;-1:-1:-1;1249:20:1;;;;497:779;-1:-1:-1;;;497:779:1:o;939:246:6:-;1028:3;1020:11;;993:24;1122:31;;;;;;;;;;;;1157:1;1067:11;;;;1157:20;;;;1122:56;;;1088:90;;939:246::o", + "source": "// SPDX-License-Identifier: UNLICENSED\npragma solidity =0.6.8;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/cryptography/MerkleProof.sol\";\nimport \"./interfaces/IMerkleDistributor.sol\";\n\ncontract MerkleDistributor is IMerkleDistributor {\n address public immutable override token;\n bytes32 public immutable override merkleRoot;\n\n // This is a packed array of booleans.\n mapping(uint256 => uint256) private claimedBitMap;\n\n constructor(address token_, bytes32 merkleRoot_) public {\n token = token_;\n merkleRoot = merkleRoot_;\n }\n\n function isClaimed(uint256 index) public view override returns (bool) {\n uint256 claimedWordIndex = index / 256;\n uint256 claimedBitIndex = index % 256;\n uint256 claimedWord = claimedBitMap[claimedWordIndex];\n uint256 mask = (1 << claimedBitIndex);\n return claimedWord & mask == mask;\n }\n\n function _setClaimed(uint256 index) private {\n uint256 claimedWordIndex = index / 256;\n uint256 claimedBitIndex = index % 256;\n claimedBitMap[claimedWordIndex] = claimedBitMap[claimedWordIndex] | (1 << claimedBitIndex);\n }\n\n function claim(uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) external override {\n require(!isClaimed(index), 'MerkleDistributor: Drop already claimed.');\n\n // Verify the merkle proof.\n bytes32 node = keccak256(abi.encodePacked(index, account, amount));\n require(MerkleProof.verify(merkleProof, merkleRoot, node), 'MerkleDistributor: Invalid proof.');\n\n // Mark it claimed and send the token.\n _setClaimed(index);\n require(IERC20(token).transfer(account, amount), 'MerkleDistributor: Transfer failed.');\n\n emit Claimed(index, account, amount);\n }\n}\n", + "sourcePath": "/Users/phuongnguyen/Desktop/xblade.Merkle.Distributor/contracts/MerkleDistributor.sol", + "ast": { + "absolutePath": "project:/contracts/MerkleDistributor.sol", + "exportedSymbols": { + "MerkleDistributor": [ + 1247 + ] + }, + "id": 1248, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1080, + "literals": [ + "solidity", + "=", + "0.6", + ".8" + ], + "nodeType": "PragmaDirective", + "src": "39:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1081, + "nodeType": "ImportDirective", + "scope": 1248, + "sourceUnit": 875, + "src": "64:56:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/cryptography/MerkleProof.sol", + "file": "@openzeppelin/contracts/cryptography/MerkleProof.sol", + "id": 1082, + "nodeType": "ImportDirective", + "scope": 1248, + "sourceUnit": 94, + "src": "121:62:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/contracts/interfaces/IMerkleDistributor.sol", + "file": "./interfaces/IMerkleDistributor.sol", + "id": 1083, + "nodeType": "ImportDirective", + "scope": 1248, + "sourceUnit": 1288, + "src": "184:45:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1084, + "name": "IMerkleDistributor", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1287, + "src": "261:18:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IMerkleDistributor_$1287", + "typeString": "contract IMerkleDistributor" + } + }, + "id": 1085, + "nodeType": "InheritanceSpecifier", + "src": "261:18:6" + } + ], + "contractDependencies": [ + 1287 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1247, + "linearizedBaseContracts": [ + 1247, + 1287 + ], + "name": "MerkleDistributor", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1254 + ], + "constant": false, + "functionSelector": "fc0c546a", + "id": 1088, + "mutability": "immutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": { + "id": 1087, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "311:8:6" + }, + "scope": 1247, + "src": "286:39:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "286:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "baseFunctions": [ + 1259 + ], + "constant": false, + "functionSelector": "2eb4a7ab", + "id": 1091, + "mutability": "immutable", + "name": "merkleRoot", + "nodeType": "VariableDeclaration", + "overrides": { + "id": 1090, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "356:8:6" + }, + "scope": 1247, + "src": "331:44:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1089, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "331:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1095, + "mutability": "mutable", + "name": "claimedBitMap", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1247, + "src": "425:49:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 1094, + "keyType": { + "id": 1092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "433:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "425:27:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 1093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "444:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1110, + "nodeType": "Block", + "src": "537:65:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1102, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1088, + "src": "547:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1103, + "name": "token_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1097, + "src": "555:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "547:14:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1105, + "nodeType": "ExpressionStatement", + "src": "547:14:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1106, + "name": "merkleRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "571:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1107, + "name": "merkleRoot_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "584:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "571:24:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1109, + "nodeType": "ExpressionStatement", + "src": "571:24:6" + } + ] + }, + "documentation": null, + "id": 1111, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1097, + "mutability": "mutable", + "name": "token_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1111, + "src": "493:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "493:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1099, + "mutability": "mutable", + "name": "merkleRoot_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1111, + "src": "509:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1098, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "509:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "492:37:6" + }, + "returnParameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [], + "src": "537:0:6" + }, + "scope": 1247, + "src": "481:121:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1266 + ], + "body": { + "id": 1150, + "nodeType": "Block", + "src": "678:255:6", + "statements": [ + { + "assignments": [ + 1120 + ], + "declarations": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "claimedWordIndex", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1150, + "src": "688:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "688:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1124, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1121, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "715:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 1122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "723:3:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "715:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "688:38:6" + }, + { + "assignments": [ + 1126 + ], + "declarations": [ + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "claimedBitIndex", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1150, + "src": "736:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1130, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1127, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "762:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "770:3:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "762:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "736:37:6" + }, + { + "assignments": [ + 1132 + ], + "declarations": [ + { + "constant": false, + "id": 1132, + "mutability": "mutable", + "name": "claimedWord", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1150, + "src": "783:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "783:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1136, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1133, + "name": "claimedBitMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "805:13:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1135, + "indexExpression": { + "argumentTypes": null, + "id": 1134, + "name": "claimedWordIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1120, + "src": "819:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "805:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "783:53:6" + }, + { + "assignments": [ + 1138 + ], + "declarations": [ + { + "constant": false, + "id": 1138, + "mutability": "mutable", + "name": "mask", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1150, + "src": "846:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "846:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1143, + "initialValue": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "862:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 1140, + "name": "claimedBitIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "867:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "862:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "861:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "846:37:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1144, + "name": "claimedWord", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "900:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "argumentTypes": null, + "id": 1145, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "914:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "900:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1147, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "922:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "900:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1118, + "id": 1149, + "nodeType": "Return", + "src": "893:33:6" + } + ] + }, + "documentation": null, + "functionSelector": "9e34070f", + "id": 1151, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isClaimed", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1115, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "654:8:6" + }, + "parameters": { + "id": 1114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "627:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "626:15:6" + }, + "returnParameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "672:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1116, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "672:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "671:6:6" + }, + "scope": 1247, + "src": "608:325:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1181, + "nodeType": "Block", + "src": "983:202:6", + "statements": [ + { + "assignments": [ + 1157 + ], + "declarations": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "claimedWordIndex", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1181, + "src": "993:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "993:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1161, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1158, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "1020:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1028:3:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "1020:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "993:38:6" + }, + { + "assignments": [ + 1163 + ], + "declarations": [ + { + "constant": false, + "id": 1163, + "mutability": "mutable", + "name": "claimedBitIndex", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1181, + "src": "1041:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1041:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1167, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1164, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "1067:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1075:3:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "1067:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1041:37:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1168, + "name": "claimedBitMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "1088:13:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1170, + "indexExpression": { + "argumentTypes": null, + "id": 1169, + "name": "claimedWordIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "1102:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1088:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1171, + "name": "claimedBitMap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1095, + "src": "1122:13:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 1173, + "indexExpression": { + "argumentTypes": null, + "id": 1172, + "name": "claimedWordIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "1136:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1122:31:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1157:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "argumentTypes": null, + "id": 1175, + "name": "claimedBitIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1163, + "src": "1162:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1157:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1177, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1156:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1122:56:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1088:90:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1180, + "nodeType": "ExpressionStatement", + "src": "1088:90:6" + } + ] + }, + "documentation": null, + "id": 1182, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setClaimed", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1182, + "src": "960:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "959:15:6" + }, + "returnParameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "983:0:6" + }, + "scope": 1247, + "src": "939:246:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "baseFunctions": [ + 1278 + ], + "body": { + "id": 1245, + "nodeType": "Block", + "src": "1304:525:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1322:17:6", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1197, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1333:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1196, + "name": "isClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "1323:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1323:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e", + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1341:42:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3dd4fedd52cf57495a0383b3611a398031abfe6e8cda07bccd9f5f795a45333c", + "typeString": "literal_string \"MerkleDistributor: Drop already claimed.\"" + }, + "value": "MerkleDistributor: Drop already claimed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3dd4fedd52cf57495a0383b3611a398031abfe6e8cda07bccd9f5f795a45333c", + "typeString": "literal_string \"MerkleDistributor: Drop already claimed.\"" + } + ], + "id": 1195, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1314:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1314:70:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1202, + "nodeType": "ExpressionStatement", + "src": "1314:70:6" + }, + { + "assignments": [ + 1204 + ], + "declarations": [ + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "node", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1245, + "src": "1431:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1203, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1431:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1213, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1208, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1473:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1209, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "1480:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1210, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "1489:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1206, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1456:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1456:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1456:40:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1205, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "1446:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1446:51:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1431:66:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1217, + "name": "merkleProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "1534:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1218, + "name": "merkleRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "1547:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1219, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "1559:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1215, + "name": "MerkleProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "1515:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MerkleProof_$93_$", + "typeString": "type(library MerkleProof)" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verify", + "nodeType": "MemberAccess", + "referencedDeclaration": 92, + "src": "1515:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1515:49:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e", + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1566:35:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6afb067511959dbd4bc272e5aed6b4a5d429e99f0f504267fbd07e02406282d2", + "typeString": "literal_string \"MerkleDistributor: Invalid proof.\"" + }, + "value": "MerkleDistributor: Invalid proof." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6afb067511959dbd4bc272e5aed6b4a5d429e99f0f504267fbd07e02406282d2", + "typeString": "literal_string \"MerkleDistributor: Invalid proof.\"" + } + ], + "id": 1214, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1507:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:95:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1223, + "nodeType": "ExpressionStatement", + "src": "1507:95:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1225, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1672:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1224, + "name": "_setClaimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "1660:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1660:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1227, + "nodeType": "ExpressionStatement", + "src": "1660:18:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "1719:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1234, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "1728:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1230, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1088, + "src": "1703:5:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 874, + "src": "1696:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$874_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1696:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$874", + "typeString": "contract IERC20" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 823, + "src": "1696:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1696:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642e", + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1737:37:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_783c2b0153f1de5bc91d20a6a00fab231491ffa4eb21c15a6c6746946abb735e", + "typeString": "literal_string \"MerkleDistributor: Transfer failed.\"" + }, + "value": "MerkleDistributor: Transfer failed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_783c2b0153f1de5bc91d20a6a00fab231491ffa4eb21c15a6c6746946abb735e", + "typeString": "literal_string \"MerkleDistributor: Transfer failed.\"" + } + ], + "id": 1228, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1688:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:87:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1238, + "nodeType": "ExpressionStatement", + "src": "1688:87:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1240, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1799:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1241, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "1806:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1242, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "1815:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1239, + "name": "Claimed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "1791:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1791:31:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1244, + "nodeType": "EmitStatement", + "src": "1786:36:6" + } + ] + }, + "documentation": null, + "functionSelector": "2e7ba6ef", + "id": 1246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1193, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1295:8:6" + }, + "parameters": { + "id": 1192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1184, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1246, + "src": "1206:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1206:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1246, + "src": "1221:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1221:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1188, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1246, + "src": "1238:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "merkleProof", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1246, + "src": "1254:30:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1189, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1254:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1190, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1254:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1205:80:6" + }, + "returnParameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [], + "src": "1304:0:6" + }, + "scope": 1247, + "src": "1191:638:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1248, + "src": "231:1600:6" + } + ], + "src": "39:1793:6" + }, + "legacyAST": { + "attributes": { + "absolutePath": "project:/contracts/MerkleDistributor.sol", + "exportedSymbols": { + "MerkleDistributor": [ + 1247 + ] + }, + "license": "UNLICENSED" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "=", + "0.6", + ".8" + ] + }, + "id": 1080, + "name": "PragmaDirective", + "src": "39:23:6" + }, + { + "attributes": { + "SourceUnit": 875, + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "scope": 1248, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1081, + "name": "ImportDirective", + "src": "64:56:6" + }, + { + "attributes": { + "SourceUnit": 94, + "absolutePath": "@openzeppelin/contracts/cryptography/MerkleProof.sol", + "file": "@openzeppelin/contracts/cryptography/MerkleProof.sol", + "scope": 1248, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1082, + "name": "ImportDirective", + "src": "121:62:6" + }, + { + "attributes": { + "SourceUnit": 1288, + "absolutePath": "project:/contracts/interfaces/IMerkleDistributor.sol", + "file": "./interfaces/IMerkleDistributor.sol", + "scope": 1248, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1083, + "name": "ImportDirective", + "src": "184:45:6" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 1287 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1247, + 1287 + ], + "name": "MerkleDistributor", + "scope": 1248 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IMerkleDistributor", + "referencedDeclaration": 1287, + "type": "contract IMerkleDistributor" + }, + "id": 1084, + "name": "UserDefinedTypeName", + "src": "261:18:6" + } + ], + "id": 1085, + "name": "InheritanceSpecifier", + "src": "261:18:6" + }, + { + "attributes": { + "baseFunctions": [ + 1254 + ], + "constant": false, + "functionSelector": "fc0c546a", + "mutability": "immutable", + "name": "token", + "scope": 1247, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1086, + "name": "ElementaryTypeName", + "src": "286:7:6" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 1087, + "name": "OverrideSpecifier", + "src": "311:8:6" + } + ], + "id": 1088, + "name": "VariableDeclaration", + "src": "286:39:6" + }, + { + "attributes": { + "baseFunctions": [ + 1259 + ], + "constant": false, + "functionSelector": "2eb4a7ab", + "mutability": "immutable", + "name": "merkleRoot", + "scope": 1247, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1089, + "name": "ElementaryTypeName", + "src": "331:7:6" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 1090, + "name": "OverrideSpecifier", + "src": "356:8:6" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "331:44:6" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedBitMap", + "overrides": null, + "scope": 1247, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => uint256)", + "value": null, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "433:7:6" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1093, + "name": "ElementaryTypeName", + "src": "444:7:6" + } + ], + "id": 1094, + "name": "Mapping", + "src": "425:27:6" + } + ], + "id": 1095, + "name": "VariableDeclaration", + "src": "425:49:6" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "overrides": null, + "scope": 1247, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "token_", + "overrides": null, + "scope": 1111, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1096, + "name": "ElementaryTypeName", + "src": "493:7:6" + } + ], + "id": 1097, + "name": "VariableDeclaration", + "src": "493:14:6" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "merkleRoot_", + "overrides": null, + "scope": 1111, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1098, + "name": "ElementaryTypeName", + "src": "509:7:6" + } + ], + "id": 1099, + "name": "VariableDeclaration", + "src": "509:19:6" + } + ], + "id": 1100, + "name": "ParameterList", + "src": "492:37:6" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1101, + "name": "ParameterList", + "src": "537:0:6" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1088, + "type": "address", + "value": "token" + }, + "id": 1102, + "name": "Identifier", + "src": "547:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1097, + "type": "address", + "value": "token_" + }, + "id": 1103, + "name": "Identifier", + "src": "555:6:6" + } + ], + "id": 1104, + "name": "Assignment", + "src": "547:14:6" + } + ], + "id": 1105, + "name": "ExpressionStatement", + "src": "547:14:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "bytes32", + "value": "merkleRoot" + }, + "id": 1106, + "name": "Identifier", + "src": "571:10:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1099, + "type": "bytes32", + "value": "merkleRoot_" + }, + "id": 1107, + "name": "Identifier", + "src": "584:11:6" + } + ], + "id": 1108, + "name": "Assignment", + "src": "571:24:6" + } + ], + "id": 1109, + "name": "ExpressionStatement", + "src": "571:24:6" + } + ], + "id": 1110, + "name": "Block", + "src": "537:65:6" + } + ], + "id": 1111, + "name": "FunctionDefinition", + "src": "481:121:6" + }, + { + "attributes": { + "baseFunctions": [ + 1266 + ], + "documentation": null, + "functionSelector": "9e34070f", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isClaimed", + "scope": 1247, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 1115, + "name": "OverrideSpecifier", + "src": "654:8:6" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "overrides": null, + "scope": 1151, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "627:7:6" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "627:13:6" + } + ], + "id": 1114, + "name": "ParameterList", + "src": "626:15:6" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "overrides": null, + "scope": 1151, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "672:4:6" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "672:4:6" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "671:6:6" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1120 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedWordIndex", + "overrides": null, + "scope": 1150, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "688:7:6" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "688:24:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "index" + }, + "id": 1121, + "name": "Identifier", + "src": "715:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "323536", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 256", + "value": "256" + }, + "id": 1122, + "name": "Literal", + "src": "723:3:6" + } + ], + "id": 1123, + "name": "BinaryOperation", + "src": "715:11:6" + } + ], + "id": 1124, + "name": "VariableDeclarationStatement", + "src": "688:38:6" + }, + { + "attributes": { + "assignments": [ + 1126 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedBitIndex", + "overrides": null, + "scope": 1150, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1125, + "name": "ElementaryTypeName", + "src": "736:7:6" + } + ], + "id": 1126, + "name": "VariableDeclaration", + "src": "736:23:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "index" + }, + "id": 1127, + "name": "Identifier", + "src": "762:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "323536", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 256", + "value": "256" + }, + "id": 1128, + "name": "Literal", + "src": "770:3:6" + } + ], + "id": 1129, + "name": "BinaryOperation", + "src": "762:11:6" + } + ], + "id": 1130, + "name": "VariableDeclarationStatement", + "src": "736:37:6" + }, + { + "attributes": { + "assignments": [ + 1132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedWord", + "overrides": null, + "scope": 1150, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1131, + "name": "ElementaryTypeName", + "src": "783:7:6" + } + ], + "id": 1132, + "name": "VariableDeclaration", + "src": "783:19:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1095, + "type": "mapping(uint256 => uint256)", + "value": "claimedBitMap" + }, + "id": 1133, + "name": "Identifier", + "src": "805:13:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1120, + "type": "uint256", + "value": "claimedWordIndex" + }, + "id": 1134, + "name": "Identifier", + "src": "819:16:6" + } + ], + "id": 1135, + "name": "IndexAccess", + "src": "805:31:6" + } + ], + "id": 1136, + "name": "VariableDeclarationStatement", + "src": "783:53:6" + }, + { + "attributes": { + "assignments": [ + 1138 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "mask", + "overrides": null, + "scope": 1150, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1137, + "name": "ElementaryTypeName", + "src": "846:7:6" + } + ], + "id": 1138, + "name": "VariableDeclaration", + "src": "846:12:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<<", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1139, + "name": "Literal", + "src": "862:1:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1126, + "type": "uint256", + "value": "claimedBitIndex" + }, + "id": 1140, + "name": "Identifier", + "src": "867:15:6" + } + ], + "id": 1141, + "name": "BinaryOperation", + "src": "862:20:6" + } + ], + "id": 1142, + "name": "TupleExpression", + "src": "861:22:6" + } + ], + "id": 1143, + "name": "VariableDeclarationStatement", + "src": "846:37:6" + }, + { + "attributes": { + "functionReturnParameters": 1118 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1132, + "type": "uint256", + "value": "claimedWord" + }, + "id": 1144, + "name": "Identifier", + "src": "900:11:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1138, + "type": "uint256", + "value": "mask" + }, + "id": 1145, + "name": "Identifier", + "src": "914:4:6" + } + ], + "id": 1146, + "name": "BinaryOperation", + "src": "900:18:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1138, + "type": "uint256", + "value": "mask" + }, + "id": 1147, + "name": "Identifier", + "src": "922:4:6" + } + ], + "id": 1148, + "name": "BinaryOperation", + "src": "900:26:6" + } + ], + "id": 1149, + "name": "Return", + "src": "893:33:6" + } + ], + "id": 1150, + "name": "Block", + "src": "678:255:6" + } + ], + "id": 1151, + "name": "FunctionDefinition", + "src": "608:325:6" + }, + { + "attributes": { + "documentation": null, + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setClaimed", + "overrides": null, + "scope": 1247, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "overrides": null, + "scope": 1182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1152, + "name": "ElementaryTypeName", + "src": "960:7:6" + } + ], + "id": 1153, + "name": "VariableDeclaration", + "src": "960:13:6" + } + ], + "id": 1154, + "name": "ParameterList", + "src": "959:15:6" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1155, + "name": "ParameterList", + "src": "983:0:6" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1157 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedWordIndex", + "overrides": null, + "scope": 1181, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "993:7:6" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "993:24:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1153, + "type": "uint256", + "value": "index" + }, + "id": 1158, + "name": "Identifier", + "src": "1020:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "323536", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 256", + "value": "256" + }, + "id": 1159, + "name": "Literal", + "src": "1028:3:6" + } + ], + "id": 1160, + "name": "BinaryOperation", + "src": "1020:11:6" + } + ], + "id": 1161, + "name": "VariableDeclarationStatement", + "src": "993:38:6" + }, + { + "attributes": { + "assignments": [ + 1163 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "claimedBitIndex", + "overrides": null, + "scope": 1181, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1162, + "name": "ElementaryTypeName", + "src": "1041:7:6" + } + ], + "id": 1163, + "name": "VariableDeclaration", + "src": "1041:23:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1153, + "type": "uint256", + "value": "index" + }, + "id": 1164, + "name": "Identifier", + "src": "1067:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "323536", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 256", + "value": "256" + }, + "id": 1165, + "name": "Literal", + "src": "1075:3:6" + } + ], + "id": 1166, + "name": "BinaryOperation", + "src": "1067:11:6" + } + ], + "id": 1167, + "name": "VariableDeclarationStatement", + "src": "1041:37:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1095, + "type": "mapping(uint256 => uint256)", + "value": "claimedBitMap" + }, + "id": 1168, + "name": "Identifier", + "src": "1088:13:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "uint256", + "value": "claimedWordIndex" + }, + "id": 1169, + "name": "Identifier", + "src": "1102:16:6" + } + ], + "id": 1170, + "name": "IndexAccess", + "src": "1088:31:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "|", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1095, + "type": "mapping(uint256 => uint256)", + "value": "claimedBitMap" + }, + "id": 1171, + "name": "Identifier", + "src": "1122:13:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "uint256", + "value": "claimedWordIndex" + }, + "id": 1172, + "name": "Identifier", + "src": "1136:16:6" + } + ], + "id": 1173, + "name": "IndexAccess", + "src": "1122:31:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<<", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1174, + "name": "Literal", + "src": "1157:1:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1163, + "type": "uint256", + "value": "claimedBitIndex" + }, + "id": 1175, + "name": "Identifier", + "src": "1162:15:6" + } + ], + "id": 1176, + "name": "BinaryOperation", + "src": "1157:20:6" + } + ], + "id": 1177, + "name": "TupleExpression", + "src": "1156:22:6" + } + ], + "id": 1178, + "name": "BinaryOperation", + "src": "1122:56:6" + } + ], + "id": 1179, + "name": "Assignment", + "src": "1088:90:6" + } + ], + "id": 1180, + "name": "ExpressionStatement", + "src": "1088:90:6" + } + ], + "id": 1181, + "name": "Block", + "src": "983:202:6" + } + ], + "id": 1182, + "name": "FunctionDefinition", + "src": "939:246:6" + }, + { + "attributes": { + "baseFunctions": [ + 1278 + ], + "documentation": null, + "functionSelector": "2e7ba6ef", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "claim", + "scope": 1247, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 1193, + "name": "OverrideSpecifier", + "src": "1295:8:6" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "overrides": null, + "scope": 1246, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1183, + "name": "ElementaryTypeName", + "src": "1206:7:6" + } + ], + "id": 1184, + "name": "VariableDeclaration", + "src": "1206:13:6" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "overrides": null, + "scope": 1246, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1185, + "name": "ElementaryTypeName", + "src": "1221:7:6" + } + ], + "id": 1186, + "name": "VariableDeclaration", + "src": "1221:15:6" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "overrides": null, + "scope": 1246, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1187, + "name": "ElementaryTypeName", + "src": "1238:7:6" + } + ], + "id": 1188, + "name": "VariableDeclaration", + "src": "1238:14:6" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "merkleProof", + "overrides": null, + "scope": 1246, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes32[]", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "length": null, + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1189, + "name": "ElementaryTypeName", + "src": "1254:7:6" + } + ], + "id": 1190, + "name": "ArrayTypeName", + "src": "1254:9:6" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "1254:30:6" + } + ], + "id": 1192, + "name": "ParameterList", + "src": "1205:80:6" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1194, + "name": "ParameterList", + "src": "1304:0:6" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3dd4fedd52cf57495a0383b3611a398031abfe6e8cda07bccd9f5f795a45333c", + "typeString": "literal_string \"MerkleDistributor: Drop already claimed.\"" + } + ], + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1195, + "name": "Identifier", + "src": "1314:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1151, + "type": "function (uint256) view returns (bool)", + "value": "isClaimed" + }, + "id": 1196, + "name": "Identifier", + "src": "1323:9:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1184, + "type": "uint256", + "value": "index" + }, + "id": 1197, + "name": "Identifier", + "src": "1333:5:6" + } + ], + "id": 1198, + "name": "FunctionCall", + "src": "1323:16:6" + } + ], + "id": 1199, + "name": "UnaryOperation", + "src": "1322:17:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"MerkleDistributor: Drop already claimed.\"", + "value": "MerkleDistributor: Drop already claimed." + }, + "id": 1200, + "name": "Literal", + "src": "1341:42:6" + } + ], + "id": 1201, + "name": "FunctionCall", + "src": "1314:70:6" + } + ], + "id": 1202, + "name": "ExpressionStatement", + "src": "1314:70:6" + }, + { + "attributes": { + "assignments": [ + 1204 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "node", + "overrides": null, + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1203, + "name": "ElementaryTypeName", + "src": "1431:7:6" + } + ], + "id": 1204, + "name": "VariableDeclaration", + "src": "1431:12:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": -8, + "type": "function (bytes memory) pure returns (bytes32)", + "value": "keccak256" + }, + "id": 1205, + "name": "Identifier", + "src": "1446:9:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": -1, + "type": "abi", + "value": "abi" + }, + "id": 1206, + "name": "Identifier", + "src": "1456:3:6" + } + ], + "id": 1207, + "name": "MemberAccess", + "src": "1456:16:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1184, + "type": "uint256", + "value": "index" + }, + "id": 1208, + "name": "Identifier", + "src": "1473:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1186, + "type": "address", + "value": "account" + }, + "id": 1209, + "name": "Identifier", + "src": "1480:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1188, + "type": "uint256", + "value": "amount" + }, + "id": 1210, + "name": "Identifier", + "src": "1489:6:6" + } + ], + "id": 1211, + "name": "FunctionCall", + "src": "1456:40:6" + } + ], + "id": 1212, + "name": "FunctionCall", + "src": "1446:51:6" + } + ], + "id": 1213, + "name": "VariableDeclarationStatement", + "src": "1431:66:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6afb067511959dbd4bc272e5aed6b4a5d429e99f0f504267fbd07e02406282d2", + "typeString": "literal_string \"MerkleDistributor: Invalid proof.\"" + } + ], + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1214, + "name": "Identifier", + "src": "1507:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "verify", + "referencedDeclaration": 92, + "type": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 93, + "type": "type(library MerkleProof)", + "value": "MerkleProof" + }, + "id": 1215, + "name": "Identifier", + "src": "1515:11:6" + } + ], + "id": 1216, + "name": "MemberAccess", + "src": "1515:18:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "bytes32[] calldata", + "value": "merkleProof" + }, + "id": 1217, + "name": "Identifier", + "src": "1534:11:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "bytes32", + "value": "merkleRoot" + }, + "id": 1218, + "name": "Identifier", + "src": "1547:10:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1204, + "type": "bytes32", + "value": "node" + }, + "id": 1219, + "name": "Identifier", + "src": "1559:4:6" + } + ], + "id": 1220, + "name": "FunctionCall", + "src": "1515:49:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"MerkleDistributor: Invalid proof.\"", + "value": "MerkleDistributor: Invalid proof." + }, + "id": 1221, + "name": "Literal", + "src": "1566:35:6" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "1507:95:6" + } + ], + "id": 1223, + "name": "ExpressionStatement", + "src": "1507:95:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1182, + "type": "function (uint256)", + "value": "_setClaimed" + }, + "id": 1224, + "name": "Identifier", + "src": "1660:11:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1184, + "type": "uint256", + "value": "index" + }, + "id": 1225, + "name": "Identifier", + "src": "1672:5:6" + } + ], + "id": 1226, + "name": "FunctionCall", + "src": "1660:18:6" + } + ], + "id": 1227, + "name": "ExpressionStatement", + "src": "1660:18:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_783c2b0153f1de5bc91d20a6a00fab231491ffa4eb21c15a6c6746946abb735e", + "typeString": "literal_string \"MerkleDistributor: Transfer failed.\"" + } + ], + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1228, + "name": "Identifier", + "src": "1688:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": 823, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC20", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 874, + "type": "type(contract IERC20)", + "value": "IERC20" + }, + "id": 1229, + "name": "Identifier", + "src": "1696:6:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1088, + "type": "address", + "value": "token" + }, + "id": 1230, + "name": "Identifier", + "src": "1703:5:6" + } + ], + "id": 1231, + "name": "FunctionCall", + "src": "1696:13:6" + } + ], + "id": 1232, + "name": "MemberAccess", + "src": "1696:22:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1186, + "type": "address", + "value": "account" + }, + "id": 1233, + "name": "Identifier", + "src": "1719:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1188, + "type": "uint256", + "value": "amount" + }, + "id": 1234, + "name": "Identifier", + "src": "1728:6:6" + } + ], + "id": 1235, + "name": "FunctionCall", + "src": "1696:39:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"MerkleDistributor: Transfer failed.\"", + "value": "MerkleDistributor: Transfer failed." + }, + "id": 1236, + "name": "Literal", + "src": "1737:37:6" + } + ], + "id": 1237, + "name": "FunctionCall", + "src": "1688:87:6" + } + ], + "id": 1238, + "name": "ExpressionStatement", + "src": "1688:87:6" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1286, + "type": "function (uint256,address,uint256)", + "value": "Claimed" + }, + "id": 1239, + "name": "Identifier", + "src": "1791:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1184, + "type": "uint256", + "value": "index" + }, + "id": 1240, + "name": "Identifier", + "src": "1799:5:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1186, + "type": "address", + "value": "account" + }, + "id": 1241, + "name": "Identifier", + "src": "1806:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1188, + "type": "uint256", + "value": "amount" + }, + "id": 1242, + "name": "Identifier", + "src": "1815:6:6" + } + ], + "id": 1243, + "name": "FunctionCall", + "src": "1791:31:6" + } + ], + "id": 1244, + "name": "EmitStatement", + "src": "1786:36:6" + } + ], + "id": 1245, + "name": "Block", + "src": "1304:525:6" + } + ], + "id": 1246, + "name": "FunctionDefinition", + "src": "1191:638:6" + } + ], + "id": 1247, + "name": "ContractDefinition", + "src": "231:1600:6" + } + ], + "id": 1248, + "name": "SourceUnit", + "src": "39:1793:6" + }, + "compiler": { + "name": "solc", + "version": "0.6.8+commit.0bbfe453.Emscripten.clang" + }, + "networks": { + "97": { + "events": {}, + "links": {}, + "address": "0x3c882355aaAd0f9644546B93dc3BaC03005d6c5b", + "transactionHash": "0x4abbbc8d63ab9ff137e7dc4384c42699c5f54221e5cda57457cbc78d5730b865" + } + }, + "schemaVersion": "3.4.4", + "updatedAt": "2022-03-21T15:23:40.174Z", + "networkType": "ethereum", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/assets/images/Congrats.gif b/src/assets/images/Congrats.gif new file mode 100644 index 0000000..7659b69 Binary files /dev/null and b/src/assets/images/Congrats.gif differ diff --git a/src/assets/images/loading.gif b/src/assets/images/loading.gif new file mode 100644 index 0000000..0e620e9 Binary files /dev/null and b/src/assets/images/loading.gif differ diff --git a/src/assets/images/loadingCircle.gif b/src/assets/images/loadingCircle.gif new file mode 100644 index 0000000..843d01b Binary files /dev/null and b/src/assets/images/loadingCircle.gif differ diff --git a/src/components/SaleInputAirdrop.vue b/src/components/SaleInputAirdrop.vue index 10e8db8..b1e7fb3 100644 --- a/src/components/SaleInputAirdrop.vue +++ b/src/components/SaleInputAirdrop.vue @@ -17,12 +17,22 @@ @click=" handlePurchase('0x27a339d9b59b21390d7209b78a839868e319301b', 0) " + v-if="!this.isXdrop" > Get Random xBlade -
+
+