UNPKG

realitytoken-contracts

Version:
1,206 lines 127 kB
{ "contractName": "Distribution", "abi": [ { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "hashid", "type": "bytes32" }, { "indexed": false, "name": "user", "type": "address" } ], "name": "Withdraw", "type": "event" }, { "constant": false, "inputs": [ { "name": "user", "type": "address[]" }, { "name": "fundAmount_", "type": "uint256[]" } ], "name": "injectReward", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "finalize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "realityToken", "type": "address" }, { "name": "hashid_", "type": "bytes32" } ], "name": "withdrawReward", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6060604052341561000f57600080fd5b60018054600160a060020a03191633600160a060020a03161790556103a6806100396000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302886a4b81146100665780634bb278f3146100f75780634cb882c61461010a5780638da5cb5b1461012c575b600080fd5b341561007157600080fd5b6100f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061015b95505050505050565b005b341561010257600080fd5b6100f5610204565b341561011557600080fd5b6100f5600160a060020a0360043516602435610256565b341561013757600080fd5b61013f61036b565b604051600160a060020a03909116815260200160405180910390f35b60015460009033600160a060020a0390811691161461017957600080fd5b60015474010000000000000000000000000000000000000000900460ff16156101a157600080fd5b5060005b82518110156101ff578181815181106101ba57fe5b906020019060200201516000808584815181106101d357fe5b90602001906020020151600160a060020a031681526020810191909152604001600020556001016101a5565b505050565b60015433600160a060020a0390811691161461021f57600080fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b81600160a060020a03166357cfeeee3360008033600160a060020a0316600160a060020a0316815260200190815260200160002054846040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156102f057600080fd5b5af115156102fd57600080fd5b5050506040518051505033600160a060020a038116600090815260208190526040808220919091557f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df91839151918252600160a060020a031660208201526040908101905180910390a15050565b600154600160a060020a0316815600a165627a7a723058207e32860386f1101a5b088e0e2c67bcd37b12b53f45a31e2af87a340f726c70f90029", "deployedBytecode": "0x6060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302886a4b81146100665780634bb278f3146100f75780634cb882c61461010a5780638da5cb5b1461012c575b600080fd5b341561007157600080fd5b6100f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061015b95505050505050565b005b341561010257600080fd5b6100f5610204565b341561011557600080fd5b6100f5600160a060020a0360043516602435610256565b341561013757600080fd5b61013f61036b565b604051600160a060020a03909116815260200160405180910390f35b60015460009033600160a060020a0390811691161461017957600080fd5b60015474010000000000000000000000000000000000000000900460ff16156101a157600080fd5b5060005b82518110156101ff578181815181106101ba57fe5b906020019060200201516000808584815181106101d357fe5b90602001906020020151600160a060020a031681526020810191909152604001600020556001016101a5565b505050565b60015433600160a060020a0390811691161461021f57600080fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b81600160a060020a03166357cfeeee3360008033600160a060020a0316600160a060020a0316815260200190815260200160002054846040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156102f057600080fd5b5af115156102fd57600080fd5b5050506040518051505033600160a060020a038116600090815260208190526040808220919091557f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df91839151918252600160a060020a031660208201526040908101905180910390a15050565b600154600160a060020a0316815600a165627a7a723058207e32860386f1101a5b088e0e2c67bcd37b12b53f45a31e2af87a340f726c70f90029", "sourceMap": "56:1126:0:-;;;411:65;;;;;;;;452:5;:18;;-1:-1:-1;;;;;;452:18:0;460:10;-1:-1:-1;;;;;452:18:0;;;;56:1126;;;-1:-1:-1;56:1126:0;;", "deployedSourceMap": "56:1126:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;608:195:0;;-1:-1:-1;608:195:0;;-1:-1:-1;;;;;;608:195:0;;;808:72;;;;;;;;;;;;947:233;;;;;;;;;;-1:-1:-1;;;;;947:233:0;;;;;;;123:20;;;;;;;;;;;;;;;-1:-1:-1;;;;;123:20:0;;;;;;;;;;;;;;608:195;265:5;;724:6;;251:10;-1:-1:-1;;;;;251:19:0;;;265:5;;251:19;243:28;;;;;;330:10;;;;;;;329:11;321:20;;;;;;-1:-1:-1;731:1:0;720:77;736:4;:11;734:1;:13;720:77;;;783:11;795:1;783:14;;;;;;;;;;;;;;;;763:8;:17;772:4;777:1;772:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:17:0;;;;;;;;;;;;-1:-1:-1;763:17:0;:34;748:3;;720:77;;;608:195;;;:::o;808:72::-;265:5;;251:10;-1:-1:-1;;;;;251:19:0;;;265:5;;251:19;243:28;;;;;;870:4;857:17;;-1:-1:-1;;857:17:0;;;;;808:72::o;947:233::-;1037:12;-1:-1:-1;;;;;1024:35:0;;1060:10;1072:8;:20;1081:10;-1:-1:-1;;;;;1072:20:0;-1:-1:-1;;;;;1072:20:0;;;;;;;;;;;;;1094:7;1024:78;;;;;;;;;-1:-1:-1;;;;;1024:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1118:10:0;-1:-1:-1;;;;;1109:20:0;;1132:1;1109:20;;;;;;;;;;;:24;;;;1145:29;;1154:7;;1145:29;;;;-1:-1:-1;;;;;1145:29:0;;;;;;;;;;;;;;;;947:233;;:::o;123:20::-;;;-1:-1:-1;;;;;123:20:0;;:::o", "source": "pragma solidity ^0.4.15;\n\nimport \"./RealityToken.sol\";\n\ncontract Distribution{\n mapping(address => uint256) balances;\n address public owner;\n bool isFinished;\n\n event Withdraw(bytes32 hashid, address user);\n\n modifier isOwner(){\n require(msg.sender == owner);\n _;\n }\n\n\n modifier notYetFinished(){\n require(!isFinished);\n _;\n }\n\n //Constructor sets the owner of the Distribution\n function Distribution()\n public {\n owner = msg.sender;\n }\n\n //@param users list of users that should be rewarded\n //@param fundAmount list of amounts the users should be funded with\n function injectReward(address[] user, uint[] fundAmount_)\n isOwner()\n notYetFinished()\n public\n {\n for(uint i=0; i<user.length;i++)\n balances[user[i]] = fundAmount_[i];\n }\n\n function finalize()\n isOwner()\n public{\n isFinished = true;\n }\n\n // param hashid_ hashid_ should be the hash of the branch \n function withdrawReward(address realityToken, bytes32 hashid_) public {\n RealityToken(realityToken).transfer(msg.sender, balances[msg.sender], hashid_);\n balances[msg.sender] = 0;\n emit Withdraw(hashid_, msg.sender);\n }\n}", "sourcePath": "/home/josojo/reality/subjectivocracy/contracts/Distribution.sol", "ast": { "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/Distribution.sol", "exportedSymbols": { "Distribution": [ 126 ] }, "id": 127, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.4", ".15" ], "nodeType": "PragmaDirective", "src": "0:24:0" }, { "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/RealityToken.sol", "file": "./RealityToken.sol", "id": 2, "nodeType": "ImportDirective", "scope": 127, "sourceUnit": 841, "src": "26:28:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 126, "linearizedBaseContracts": [ 126 ], "name": "Distribution", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 6, "name": "balances", "nodeType": "VariableDeclaration", "scope": 126, "src": "82:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 5, "keyType": { "id": 3, "name": "address", "nodeType": "ElementaryTypeName", "src": "90:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "82:27:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 4, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "101:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 8, "name": "owner", "nodeType": "VariableDeclaration", "scope": 126, "src": "123:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 7, "name": "address", "nodeType": "ElementaryTypeName", "src": "123:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 10, "name": "isFinished", "nodeType": "VariableDeclaration", "scope": 126, "src": "148:15:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 9, "name": "bool", "nodeType": "ElementaryTypeName", "src": "148:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "anonymous": false, "documentation": null, "id": 16, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { "id": 15, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12, "indexed": false, "name": "hashid", "nodeType": "VariableDeclaration", "scope": 16, "src": "184:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "184:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 14, "indexed": false, "name": "user", "nodeType": "VariableDeclaration", "scope": 16, "src": "200:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13, "name": "address", "nodeType": "ElementaryTypeName", "src": "200:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "183:30:0" }, "src": "169:45:0" }, { "body": { "id": 26, "nodeType": "Block", "src": "237:47:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 22, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 19, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 853, "src": "251:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "251:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "265:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "251:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 18, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 856, "src": "243:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "243:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 24, "nodeType": "ExpressionStatement", "src": "243:28:0" }, { "id": 25, "nodeType": "PlaceholderStatement", "src": "277:1:0" } ] }, "documentation": null, "id": 27, "name": "isOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 17, "nodeType": "ParameterList", "parameters": [], "src": "235:2:0" }, "src": "219:65:0", "visibility": "internal" }, { "body": { "id": 35, "nodeType": "Block", "src": "315:39:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 31, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "329:11:0", "subExpression": { "argumentTypes": null, "id": 30, "name": "isFinished", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "330:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 29, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 856, "src": "321:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "321:20:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 33, "nodeType": "ExpressionStatement", "src": "321:20:0" }, { "id": 34, "nodeType": "PlaceholderStatement", "src": "347:1:0" } ] }, "documentation": null, "id": 36, "name": "notYetFinished", "nodeType": "ModifierDefinition", "parameters": { "id": 28, "nodeType": "ParameterList", "parameters": [], "src": "313:2:0" }, "src": "290:64:0", "visibility": "internal" }, { "body": { "id": 44, "nodeType": "Block", "src": "445:31:0", "statements": [ { "expression": { "argumentTypes": null, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 39, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "452:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 40, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 853, "src": "460:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 41, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "460:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "452:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 43, "nodeType": "ExpressionStatement", "src": "452:18:0" } ] }, "documentation": null, "id": 45, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "Distribution", "nodeType": "FunctionDefinition", "parameters": { "id": 37, "nodeType": "ParameterList", "parameters": [], "src": "432:2:0" }, "payable": false, "returnParameters": { "id": 38, "nodeType": "ParameterList", "parameters": [], "src": "445:0:0" }, "scope": 126, "src": "411:65:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 80, "nodeType": "Block", "src": "712:91:0", "statements": [ { "body": { "expression": { "argumentTypes": null, "id": 77, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 69, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "763:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 73, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 70, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48, "src": "772:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 72, "indexExpression": { "argumentTypes": null, "id": 71, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 59, "src": "777:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "772:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "763:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 74, "name": "fundAmount_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "783:11:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 76, "indexExpression": { "argumentTypes": null, "id": 75, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 59, "src": "795:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "783:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "763:34:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 78, "nodeType": "ExpressionStatement", "src": "763:34:0" }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 65, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 62, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 59, "src": "734:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 63, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48, "src": "736:4:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "736:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "734:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 79, "initializationExpression": { "assignments": [ 59 ], "declarations": [ { "constant": false, "id": 59, "name": "i", "nodeType": "VariableDeclaration", "scope": 81, "src": "724:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 58, "name": "uint", "nodeType": "ElementaryTypeName", "src": "724:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 61, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 60, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "731:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "724:8:0" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 67, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "748:3:0", "subExpression": { "argumentTypes": null, "id": 66, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 59, "src": "748:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 68, "nodeType": "ExpressionStatement", "src": "748:3:0" }, "nodeType": "ForStatement", "src": "720:77:0" } ] }, "documentation": null, "id": 81, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 54, "modifierName": { "argumentTypes": null, "id": 53, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "669:7:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "669:9:0" }, { "arguments": [], "id": 56, "modifierName": { "argumentTypes": null, "id": 55, "name": "notYetFinished", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 36, "src": "682:14:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "682:16:0" } ], "name": "injectReward", "nodeType": "FunctionDefinition", "parameters": { "id": 52, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 48, "name": "user", "nodeType": "VariableDeclaration", "scope": 81, "src": "630:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, "typeName": { "baseType": { "id": 46, "name": "address", "nodeType": "ElementaryTypeName", "src": "630:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 47, "length": null, "nodeType": "ArrayTypeName", "src": "630:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[] storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 51, "name": "fundAmount_", "nodeType": "VariableDeclaration", "scope": 81, "src": "646:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" }, "typeName": { "baseType": { "id": 49, "name": "uint", "nodeType": "ElementaryTypeName", "src": "646:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50, "length": null, "nodeType": "ArrayTypeName", "src": "646:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[] storage pointer" } }, "value": null, "visibility": "internal" } ], "src": "629:36:0" }, "payable": false, "returnParameters": { "id": 57, "nodeType": "ParameterList", "parameters": [], "src": "712:0:0" }, "scope": 126, "src": "608:195:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 90, "nodeType": "Block", "src": "850:30:0", "statements": [ { "expression": { "argumentTypes": null, "id": 88, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 86, "name": "isFinished", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "857:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 87, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "870:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "857:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 89, "nodeType": "ExpressionStatement", "src": "857:17:0" } ] }, "documentation": null, "id": 91, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 84, "modifierName": { "argumentTypes": null, "id": 83, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "831:7:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "831:9:0" } ], "name": "finalize", "nodeType": "FunctionDefinition", "parameters": { "id": 82, "nodeType": "ParameterList", "parameters": [], "src": "825:2:0" }, "payable": false, "returnParameters": { "id": 85, "nodeType": "ParameterList", "parameters": [], "src": "850:0:0" }, "scope": 126, "src": "808:72:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 124, "nodeType": "Block", "src": "1017:163:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 102, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 853, "src": "1060:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1060:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 104, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "refe